public IChatMessage Next() { int reason = WaitHandle.WaitAny(new WaitHandle[] { _quitEvent, _messagesAvaiable}, 500, true); if (reason == WaitHandle.WaitTimeout || reason == 0) return null; lock (_commands) { return _commands.Dequeue(); } }