zoukankan      html  css  js  c++  java
  • 如何及时取消 BackgroundWorker 组件的后台工作

    BackgroundWorker 提供的CancelAsync只是更改了属性值,实际上并未做任何的取消操作。当处理一个比较耗时的单个任务时,需要立即关闭后台线程,可采用如下做法。(注:BackgroundWorker 也不提供他当前工作线程的属性,其理由是它是随机从线程池中获取的线程,所以它也不清楚自己用的是哪个线程,这真的是个理由吗?)

    定义线程变量workThread,并在doWrok方法中将当前的线程赋值给它。

    Code

    当需要终止该后台工作时,直接中断现场即可。

    Code

    注意:中断线程之后的BackgroundWorker 不可再使用,需要重新的初始化。

  • 相关阅读:
    Qt 智能指针学习(7种指针)
    Springmvc+Spring+Hibernate搭建方法
    DDD分层架构之领域实体(基础篇)
    LeetCode
    RabbitMQ
    Cocos2d-x环境搭建
    使用快捷键提升C#开发效率
    C# 6.0
    avalonjs 1.3.7发布
    VS2015安装
  • 原文地址:https://www.cnblogs.com/lfwolf/p/1355039.html
Copyright © 2011-2022 走看看