I create a new thread and start it from a main thread.
m_MyThread = new Thread(HandleMyThread); m_MyThread.IsBackground = true; m_MyThread.Start(); private void
Use a ManualResetEvent, and instead of Thread.Sleep, wait for the event with a timeout.
ManualResetEvent
Thread.Sleep
Then, any other thread can activate the event, and immediately resume the sleeping thread.
Once a thread is exited, it can no longer run. So don't let it exit. Instead, put it back to sleep waiting for an event.