关于线程暂停和继续的问题。
线程执行的步骤很多,我想停在某一个点上。用Suspend和Resume来暂停和继续没问题。可是vs提示被否决的。
现在改成这样。
ManualResetEvent resumeEvent = new ManualResetEvent(false);
void Pause()
{
resumeEvent.Reset();
paused = true;
}
void Resume()
{
paused = false;
resumeEvent.Set();
}
for (int i = 0; i < 10000; i++)
{
if (paused)
{
resumeEvent.WaitOne();
}
SetTextBoxMethod(textBox1, i.ToString());
System.Threading.Thread.Sleep(1000);
SetTextBoxMethod(textBox1, "bbb");
System.Threading.Thread.Sleep(5000);
SetTextBoxMethod(textBox1, "ccc");
System.Threading.Thread.Sleep(5000);
。。。。。。。。
}
这样的话只是在一个for循环结束后在开始之前暂停。而我需要想暂停在某一个点上,就像Suspend,我该怎么做。
------解决方案--------------------
加变量控制循环是否继续,比如
for()
{
if xxxxx {}
else {}
}
------解决方案--------------------
操作的每一步都加你那么一段。
一般开发情况下,线程内最小的单位肯定是你的一个操作(差不多就是一句话)
否则你就把线程本身引用传到处理函数中,自己调suspand
------解决方案--------------------
------解决方案--------------------
java 倒好处理一点。
只能参考 java方法修改了。
顶
------解决方案--------------------
就是调用Suspend 或者 调用低层的 Suspend实现
再有就是 多个方法之间都调用 if (paused)