to 现在在执行的过程中我想点一个按钮停止执行,请问用什么代码?方法是,加以停止标签,然后比较复杂的递归及循环运算中,去判断当时停止标签的状态,来决定是否继续进行计算。在button的click事件中,修改停止标签来关闭运算。但是要说的一点是,如果你的运算占的资源很多的话,那么button_click事件很难被系统响应。
to 如果以后用到多线程的话该怎么停止执行如果想安全结束的话,做法基本上和上面的方法一样,即设置停止标签,然后join线程结束; 否则,你可以用线程的abort或者Application.ExitThread之类的来强行关闭线程。
关注....
否则,你可以用线程的abort或者Application.ExitThread之类的来强行关闭线程。
建议使用BackgroundWorker + WaitDialog实现!如果在循环中确定窗体不会假死,就使用:
bool StopFlag = false;for(int i=0;i<1000;i++)
{
if(StopFlag == true)break;//最好定义在顶级循环中允许停止,否则可能出现运算错误
for(int j=0;j<10;j++)
{
//....
}
}btnStop_Click(...)
{
this.StopFlag = true;
this.btnStop.Enabled = false;
}