private void Run() { while (true) { bool stop = _manualResetEvent.WaitOne(0); if (stop) { break; } SendOrPostCallbackItem workItem = _queueConsumer.Dequeque(); workItem?.Execute(); } }