次のコードが与えられます:
...
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();
}
}
}
取得中のロックでfalseを受信したためにEnterブロックが「失敗」した場合、現在のスレッドはスピンロックのようにスピンして取得できるようになるまで待機しますか、それともこのブロックが単にバイパスされてそのスレッドが失われますか?
ありがとう、
スコット