public void Stop() { running = false; ws.Stop (); UnregisterService (); // get that thread to wake up and exit lock (revmgr) { Monitor.PulseAll (revmgr); } }