考慮下面的代碼:C#4.0 BCL SpinLock的旋轉/阻止何時無法鎖定?
...
private static SpinLock logLock = new SpinLock(false);
...
private static void ThreadFunc()
{
bool lockTaken = false;
logLock.Enter(ref lockTaken)
{
try
{
// do stuff with during an acquired SpinLock
}
finally
{
logLock.Exit();
}
}
}
如果輸入塊「失敗」,因爲它接收到一個假的鎖被收購,確實當前線程旋像一個自旋鎖和等待,直到它可以獲取它,或者這是塊簡單繞過,線程失去了?
謝謝,
斯科特
謝謝!你已經證實了我的懷疑,以及VS 2010中的線程調試器。 – 2010-07-05 11:09:28