主线程从界面接收一个用户任务之后,交给工作线程去完成.但是完成这个任务需要很长一段时间,执行这个任务的过程中,弹出一个等待对话框,我在这个对话框中加入了一个"取消"按钮,我希望当用户点击取消时,能够中途停止任务的执行.
怎么样才能真正取消这个尚未完成的任务呢?是直接强制关闭这个工作线程,还是另有其他好的办法? 我的工作线程的主要任务,是通过Web Service从服务器获取很大数量的数据,大量的时间,也就花在执行Web Service函数上了,强制关闭线程,会不会造成什么意想不到的结果呢? 还望大家多多指导!
怎么样才能真正取消这个尚未完成的任务呢?是直接强制关闭这个工作线程,还是另有其他好的办法? 我的工作线程的主要任务,是通过Web Service从服务器获取很大数量的数据,大量的时间,也就花在执行Web Service函数上了,强制关闭线程,会不会造成什么意想不到的结果呢? 还望大家多多指导!
解决方案 »
- c++开发的ocx的问题,超难!
- 如何获得特定程序的控件的内容
- 求助:使用映射模式的问题
- 如何在访问存在于网络中另一台机器的ACCESS数据库
- 一个非常奇怪的问题,还请大虾们帮助解决!
- 请问宏_IMPLEMENT_RUNTIMECLASS(class_name,base_class_name,0xFFFF,NULL)的后两个参数的用意?
- 编译错误:这是怎么回事???求教
- 如何创建一个文件夹
- 怎么让一个RichEditCtrl框里的内容最大化,占满全屏!
- 散分 + 交换链接 www.wentrip.com 广州特价宾馆预定宾馆预订宾馆饭店订房广交会特价酒店预定酒店预订酒店
- 为什么从文件中读数据到char指针数组再delete[] 指针数组出错?
- IE工具条插件定制开发
工作线程一般来说会有一个主循环,可以在这个主循环中循环判断某个Event是否被Signaled,如果是,则结束并退出。如果主循环中所作的事情比较长(或者没有循环),你还可以在代码中你觉得合适的地方插入对该Event的判断,如果Signaled则做一些清理工作然后退出。主程序点Cancel的时候把该Event设置为Signaled然后等待该线程结束即可。