参见英文答案 >
How to pause/suspend a thread then continue it?3
在c#中手动恢复线程之前,如何将线程置于暂停/休眠状态?
在c#中手动恢复线程之前,如何将线程置于暂停/休眠状态?
目前我正在中止线程,但这不是我正在寻找的.线程应该睡眠/暂停,直到它触发它唤醒为止.
解决方法
你应该通过
ManualResetEvent这样做.
ManualResetEvent mre = new ManualResetEvent(); mre.WaitOne(); // This will wait
在另一个线程上,显然您需要对ManualResetEvent实例的引用.
mre.Set(); // Tells the other thread to go again
一个完整的例子,将打印一些文本,等待另一个线程做某事,然后恢复:
class Program { private static ManualResetEvent mre = new ManualResetEvent(false); static void Main(string[] args) { Thread t = new Thread(new ThreadStart(SleepAndSet)); t.Start(); Console.WriteLine("Waiting"); mre.WaitOne(); Console.WriteLine("Resuming"); } public static void SleepAndSet() { Thread.Sleep(2000); mre.Set(); } }