このコード スニペットは、 hereConcurrentQueue
から提供された実装からのものです。
internal bool TryPeek(out T result)
{
result = default(T);
int lowLocal = Low;
if (lowLocal > High)
return false;
SpinWait spin = new SpinWait();
while (m_state[lowLocal] == 0)
{
spin.SpinOnce();
}
result = m_array[lowLocal];
return true;
}
回転するのではなく、本当にロックフリーですか?