我使用 ManualResetEnvent 来暂停/继续线程。代码示例如下。
private _rstEvent = new ManualResetEvent(true);
public void DoSomeWork()
{
while(judgementValue)
{
_rstEvent.WaitOne();
...
}
}
public void Pause()
{
_rstEvent.Reset();
}
public void Continue()
{
_rstEvent.Set();
}
问题是如果while循环很大怎么办,这意味着while语句中的每个循环都有很多操作要做。该线程将继续进行,直到遇到下一个_rstEvent.WaitOne();
。除了不推荐使用的挂起之外,有没有办法立即暂停线程?