public void Stop() { continueSending = false; while (currentlySendingCount > 0) Thread.Sleep(TimeSpan.FromSeconds(1)); lock(@lock) Monitor.Pulse(@lock); } }