这几天做项目懒了就用backgroundworker这个控件,觉得它比多线程方便一些,然后这个线程里面在开线程,然后惨剧就发生了:当我打开一个主窗口后,在打开一个子窗口,子窗口里有个backgroundworker,然后我就启动了这个dowork,然后就开始执行很耗时的操作,闲着无聊,我点了几下鼠标,一不小心把子窗口给关了,靠,执行了一半的程序,重启吧,可是还没等我重新打开,奇迹出现了,程序执行完了,这说明我关闭了窗口,但是backgroundworker还在运行,嗯?这可不行啊,我这么严谨的人怎么能出这样的错呢,虽然客户是不会乱点的,好吧,让我们看看怎么办-----

正题

经过我测试到现在得出结论

backgroundworker 在你关闭窗体时他不会结束,什么时候结束?是在你的整个application结束,它才结束

this.backgroundWorker1.CancelAsync()这个方法,我觉得很奇怪,它到底该怎么用?

看msdn 调用 CancelAsync 时,辅助方法可以停止其执行并退出。辅助代码应定期检查 CancellationPending 属性,查看是否已将该属性设置为 true

这是个什么意思呢?我理解了是不是说调用这个方法时我得先看看CancellationPending是不是true呢,不然就会取消失败?那这个取消还有个毛用啊,CancellationPending又不是我能控制的,那我想随时随地的关掉这个不就无法实现了吗?那不就等于说这个CancelAsync是无效的吗?

最后我试了n久还是无法使用ancelAsync这个方法来取消backgroundworker

大神能给解释吗?

最新文章

  1. 【JQuery】jQuery.inArray 确定第一个参数在数组中的位置
  2. asp.net 163邮件发送
  3. 15分钟弄懂 const 和 #define
  4. Qt 'void QWidget::show()' is inaccessible
  5. 翻纸牌游戏(dfs回溯)
  6. UVa 10299 - Relatives
  7. tbl.js div实现的表格控件,完全免费,不依赖jquery
  8. QT5 Thread线程
  9. css 块状元素与行内元素(内联元素)的理解
  10. 抽奖大转盘 js代码
  11. Docker Compose 简介
  12. centos7防火墙导致不能访问的
  13. sklearn交叉验证-【老鱼学sklearn】
  14. sql判断日期是否为当前季度
  15. react portals
  16. python第五天 字典
  17. Android控件Gridview实现多个menu模块,可添加可删除
  18. 无法解决 equal to 运算中 "Chinese_PRC_CI_AS" 和 "Latin1_General_100_CI_AS" 之间的排序规则冲突。
  19. PHP与Imagemagick
  20. vue2.0修饰符sync用法

热门文章

  1. winfrom 导入Excel表到access数据库(来自小抽奖系统)
  2. Vue.js学习 Item14 – 过滤器与自定义过滤器
  3. Silverlight 读取配置文件
  4. echarts简单使用案例
  5. Cassandra 的压缩策略STCS,LCS 和 DTCS
  6. Java打印温度转换表
  7. 7.css盒模型
  8. Python脚本控制的WebDriver 常用操作 <七>浏览器前进和后退操作
  9. [php]php数组函数的相关
  10. 【原创】可以换行的RadioGroup