可能重复的问题: 有没有办法无限期地暂停一个线程?
在我的代码中,我执行以下操作
Thread mainThread
//...
mainThread.Resume();
void StartThread()
{
while (!wantQuit)
{
db.runEmail();
mainThread.Suspend();
}
}
然后我得到下面的异常,因为我在它没有被暂停时调用了 resume。
System.Threading.ThreadStateException
我注意到这个警告
warning CS0618: 'System.Threading.Thread.Resume()' is obsolete: 'Thread.Resume has been deprecated. Please use other classes in System.Threading, such as Monitor, Mutex, Event, and Semaphore, to synchronize Threads or protect resources. http://go.microsoft.com/fwlink/?linkid=14202'
所以我想知道有没有办法恢复并忽略它没有被暂停的异常/情况?我讨厌写下面而不是一行
try
{
mainThread.Resume();
}
catch (System.Threading.ThreadStateException e)
{
}