public void Run() { _globalSignal.Signal(); _globalSignal.Wait(); while (!_cancellationToken.IsCancellationRequested) { long value; if (_pingQueue.TryDequeue(out value)) { _pongQueue.Enqueue(value); } else { Thread.Yield(); } } }
public void Run() { _running = true; while (_running) { //long value; //while (!_blockingQueue.TryDequeue(out value)) // break; long value; while (!_blockingQueue.TryDequeue(out value)) { break; } _value += value; if (_sequence++ == _count) { _latch.Set(); } } }