--->同时弹出窗体2,有一个自定义控件,控件上有进度条和取消按钮(进度条功能正常实现了)
现在,我中途点窗体2控件中的取消,怎么能让窗体1的数据处理立刻终止.
目前遇到的问题是,我点取消,只是关闭了窗体2,而窗体1单击事件仍然在跑,也就是说事件还在执行.怎么能让窗体1的数据处理立刻终止呀??????????????
6 个解决方案
#1
帮顶,我也想知道
#2
用一个新线程调用数据处理的方法,取消时阻塞这个线程
#3
第一搞个线程去做,然后终止线程
第二,在循环中加上加上个变量判断,比如 _exit就是变量,你控制它就行了
while (true)
{
//你的工作
Application.DoEvents();
if (_exit)
break;
}
第二,在循环中加上加上个变量判断,比如 _exit就是变量,你控制它就行了
while (true)
{
//你的工作
Application.DoEvents();
if (_exit)
break;
}
#4
开个线程,处理数据。
取消时,暴力点的就是kill线程。
温柔点的,就是设置个结束标志,处理数据时判断结束标志,如果为true,结束处理数据,线程自己结束。
取消时,暴力点的就是kill线程。
温柔点的,就是设置个结束标志,处理数据时判断结束标志,如果为true,结束处理数据,线程自己结束。
#5
关键是第一个窗体中的button1-Click()事件中的查询语句正在进行,而把这条查询语句发动线程中,意味着他不能再调用Form1中传来的参数了,必须再用委托把所有用到的参数、方法全委托,是不是太麻烦了?
是不是应该在进度条控件的取消事件中做文章??????
是不是应该在进度条控件的取消事件中做文章??????
#6
没人回答,自己顶一下
#1
帮顶,我也想知道
#2
用一个新线程调用数据处理的方法,取消时阻塞这个线程
#3
第一搞个线程去做,然后终止线程
第二,在循环中加上加上个变量判断,比如 _exit就是变量,你控制它就行了
while (true)
{
//你的工作
Application.DoEvents();
if (_exit)
break;
}
第二,在循环中加上加上个变量判断,比如 _exit就是变量,你控制它就行了
while (true)
{
//你的工作
Application.DoEvents();
if (_exit)
break;
}
#4
开个线程,处理数据。
取消时,暴力点的就是kill线程。
温柔点的,就是设置个结束标志,处理数据时判断结束标志,如果为true,结束处理数据,线程自己结束。
取消时,暴力点的就是kill线程。
温柔点的,就是设置个结束标志,处理数据时判断结束标志,如果为true,结束处理数据,线程自己结束。
#5
关键是第一个窗体中的button1-Click()事件中的查询语句正在进行,而把这条查询语句发动线程中,意味着他不能再调用Form1中传来的参数了,必须再用委托把所有用到的参数、方法全委托,是不是太麻烦了?
是不是应该在进度条控件的取消事件中做文章??????
是不是应该在进度条控件的取消事件中做文章??????
#6
没人回答,自己顶一下