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();
}
}