public void Send(string message) { if (IsSending) throw new Exception("Cannot call send while doing SendAndWait, make up your mind"); lock (queue) { queue.Enqueue(message); if(!IsSending) { SendFromQueue(); } } }