VS2005中BackgroundWorker组件的使用经验

在VS2005中添加了BackgroundWorker组件,该组件在多线程编程方面使用起来非常方便,然而在开始时由于没有搞清楚它的使用机制,走了不少的弯路,现在把我在使用它的过程中的经验与诸位分享一下。

BackgroundWorker类中主要用到的有这列属性、方法和事件:

重要属性:

1、CancellationPending

获取一个值,指示应用程序是否已请求取消后台操作。通过在DoWork事件中判断CancellationPending属性可以认定是否需要取消后台操作(也就是结束线程);

2、IsBusy

获取一个值,指示 BackgroundWorker 是否正在运行异步操作。程序中使用IsBusy属性用来确定后台操作是否正在使用中;

3、WorkerReportsProgress

获取或设置一个值,该值指示BackgroundWorker能否报告进度更新

4、WorkerSupportsCancellation

获取或设置一个值,该值指示 BackgroundWorker 是否支持异步取消。设置WorkerSupportsCancellation为true使得程序可以调用CancelAsync方法提交终止挂起的后台操作的请求;

重要方法:

1、CancelAsync

请求取消挂起的后台操作

2、RunWorkerAsync

开始执行后台操作

3、ReportProgress

引发ProgressChanged事件

重要事件:

1、DoWork

调用 RunWorkerAsync 时发生

2、ProgressChanged

调用 ReportProgress 时发生

时间: 2024-11-01 13:29:30

VS2005中BackgroundWorker组件的使用经验的相关文章

VS2005中sqlconnection组件显示为灰色

问题描述 默认的VS2005中工具箱中"数据"选项中没有sqlconnection组件,在通过在工具栏右键->选择项->.netframework组件里中将sqlconnection那一项勾勾上,然后全部显示,为什么sqlconnection这一项是灰色的,请问这是为什么,有那位给我解答一下,谢谢.. 解决方案 解决方案二:没有人回答吗?解决方案三:我用也是vs2005,我用你的方法sqlconnection组件,没有出你这个情况,会不会你安装的vs2005有问题啊解决方案

在VS2005中一些管用的COM组件的使用

问题描述 在VS2005中添加引用时选COM选项卡,里面的每个COM组件各有什么作用,各位大虾能否说说一些好用的COM组件 解决方案 解决方案二:........那是你系统里面有的com每个系统都不大一样的.

使用BackgroundWorker组件进行异步操作编程

概述 在应用程序中,可能会遇到一些执行耗时的功能操作,比如数据下载.复杂计算及数据库事务等,一般这样的功能会在单独的线程上实现,执行结束后结果显示到用户界面上,这样可避免造成用户界面长时间无响应情况.在.NET 2.0及以后的版本中,FCL提供了BackgroundWorker组件来方便的实现这些功能要求. 组件介绍 BackgroundWorker 类位于System.ComponentModel 命名空间中,通过该类在单独的线程上执行操作实现基于事件的异步模式.下面对BackgroundWo

《C#多线程编程实战(原书第2版)》——3.8 使用BackgroundWorker组件

3.8 使用BackgroundWorker组件 本节实例演示了另一种异步编程的方式,即使用BackgroundWorker组件.借助于该对象,可以将异步代码组织为一系列事件及事件处理器.你将学会如何使用该组件进行异步编程. 3.8.1 准备工作 为了学习本节,你需要安装Visual Studio 2015.除此之外无需其他准备.本节的源代码放置在BookSamples\Chapter3\Recipe7目录中. 3.8.2 实现方式 请执行以下步骤来学习如何使用BackgroundWorker组

backgroundworker组件的使用

本文转载:http://www.cnblogs.com/inforasc/archive/2009/10/12/1582110.html BackgroundWorker 组件用来执行诸如数据库事务.文件下载等耗时的异步操作. 开始 在应用程序中添加一个BackgroundWorker实例,如果用的是VS,可以从工具上直接拖到应用程序: BackgroundWorker backgroundWorker1 = new BackgroundWorker(); 为了开始在后台操作,必须调用Backg

转:细说ASP中Counters 组件

细说ASP中Counters 组件 概述 Counter 组件创建一个可创建.存储.增长和检索任何数量的独立计数器的 Counters 对象. 计数器是一个包含整数的持续值.可以使用 Counters 对象的 Get.Increment.Set 和 Remove 方法控制计数器.一旦您创建了计数器,它将一直持续下去直到被删除为止. 计数器不会在一个事件比如访问一页时自动增加.您必须使用 Set 和 Increment 方法人工的设置或增长计数器. 计数器不受作用域限制.一旦您创建了一个计数器,那

VB.NET中的组件开发

组件开发 先看段组件的代码:(临时写的,写得比较乱) ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' '' 登录验证组件 '' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Imports System.Security.CryptographyImports System.TextImports System.DataImpo

已调试好的asp程序在VB中转换为组件的技巧(转)好象也有不少人问过类似的问题

程序|技巧|问题|转换 已调试好的asp程序在VB中转换为组件的技巧 2001年2月3日 在网易虚拟社区的"VB和Basic区"里有一篇<使用VB编写纯ASP程序 [转][Technology] >,其实我认为最好的方法应该这样: 原文中的定义如下: Dim m_objResponse As Response 其实对于我们写过.dll的来说,并不是很好,就是如果要将该程序拿到.asp程序中进行调试时,尤其是我们将已经调试通过的.asp程序做成.dll时,.asp程序里用的是

排除vs2005中的不安全函数警告

下面的代码: #include <stdio.h> #include <minmax.h> int main( ) { int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("max=%d",c); return 0; } 使用vs2005编译时会遇到这样一个warning: warning C4996: 'scanf' was declared deprecated 其实 w