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