public void Block () {
lock (lockObj) {
blocked = true;
block.Reset();
}
}
private int Lock(bool block) { queue.Block(); if (block) { while (!queue.AllReceiversBlocked) { if (IsUsingMultithreading) { Thread.Sleep(1); } else { TickNonMultithreaded(); } } } nextLockID++; locks.Add(nextLockID); return(nextLockID); }