public virtual void Resume() { bool orig; lock (_lock) { orig = suspended; suspended = false; if (waitingProducers > 0) Monitor.Pulse (_lock); } if (orig && dispatcher != null) dispatcher.Notify (this); }