代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms; namespace TestBackGroundWorkerCompleteEvent
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
backgroundWorker.DoWork += OnDoWork;
backgroundWorker.RunWorkerCompleted += OnRunWorkerCompleted;
} static BackgroundWorker backgroundWorker = new BackgroundWorker(); private void OnDoWork(object sender, DoWorkEventArgs e)
{
Thread.Sleep();
e.Result = "任务完成!";//传递结果
} private void OnRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
Action action = new Action(() =>
{
textBox.Text = e.Result.ToString();
}); this.textBox.BeginInvoke(action); //在控件创建的线程更新控件,必须要执行上面的委托才行
} private void btnStart_Click(object sender, EventArgs e)
{
backgroundWorker.RunWorkerAsync();
}
}
}

演示如下:

.NET BackgroundWorker的一般使用方式的更多相关文章

  1. C# BackgroundWorker使用总结

    查询了一下MSDN文档,其中微软就BackgroundWorker类的功能有这么一个描述(英文的,根据个人理解翻译):BackgroundWorker类允许您在单独的线程上执行某个可能导致用户界面(U ...

  2. C#.NET中使用BackgroundWorker在模态对话框中显示进度条

    这里是一个示例,其中展示了如何使用Backgroundworker对象在模态对话框中显示后台操作的实时进度条. 首先是主窗体代码: using System; using System.Collect ...

  3. 进度条--ProgressBar和BackgroundWorker

    1) 需求:就餐打卡数据处理后,插入数据库中,用进度条显示过程 2) 思路:总进度为txt文本文件的行数(数据都是按照行写入),文本文件的大小 //BackgroundWorker对象有三个主要的事件 ...

  4. Winfom 使用 BackgroundWorker 实现进度条

    BackgroundWorker 简介(来自百度) BackgroundWorker是·net里用来执行多线程任务的控件,它允许编程者在一个单独的线程上执行一些操作.耗时的操作(如下载和数据库事务)在 ...

  5. ABP源码分析九:后台工作任务

    文主要说明ABP中后台工作者模块(BackgroundWorker)的实现方式,和后台工作模块(BackgroundJob).ABP通过BackgroundWorkerManager来管理Backgr ...

  6. 【C#】分享带等待窗体的任务执行器一枚

    -------------201504161039更新------------- 更新内容: IWaitForm接口删除System.Windows.Forms.DialogResult Dialog ...

  7. 实战框架ABP

    abp及实战框架概述 接触abp也快一年了,有过大半年的abp项目开发经验,目前项目中所用的abp框架版本为0.10.3,最新的abp框架已经到了1.4,并且支持了asp.net core.关于abp ...

  8. C#调用耗时函数时显示进度条浅探

    最近在做一个VSS日志分析工具,使用C#进行开发,在完成了所有功能后,发现,从服务器下载VSS日志非常耗时,因为此,导致工具使用体验不好,所以,准备增加一个进度条.鉴于C#不经常使用,一下子搞个进度条 ...

  9. 【C#】【Thread】BackgroundWorker的使用

    BackgroundWorker 可以用于启动后台线程. 主要的事件及参数: 1.DoWork --当执行BackgroundWorker.RunWorkerAsync方法时会触发该事件,并且传递Do ...

随机推荐

  1. Ajax的重构

    Ajax的重构方法: (1)创建一个单独的JS文件,命名为AjaxRequest.js,并且在该文件中编写重构Ajax所需要的代码. var net = new Object(); //创建一个全局变 ...

  2. CentOS下挂载数据盘

    CentOS下挂载数据盘 1.显示磁盘使用情况:#df 2.显示磁盘:#fdisk -l 3.格式化分区:#mkfs.ext4 /dev/vdb1           //注:将/dev/vdb1格式 ...

  3. django 1.9.7 css控制模板样式

    问题:css样式不能控制html样式(针对开发环境,不针对生产环境) 现象: django.template.exceptions.TemplateSyntaxError: Invalid block ...

  4. python: numpy--函数 shape用法

    http://blog.csdn.net/u010758410/article/details/71554224 shape函数是numpy.core.fromnumeric中的函数,它的功能是查看矩 ...

  5. 【转】win中IDLE选择virtualenv的启动方法

    从dos命令行运行.(virtualenv dir)\Scripts\activate.bat脚本激活环境,然后执行: python -m idlelib.idle 摘录:https://blog.c ...

  6. 【Hadoop学习之十二】MapReduce案例分析四-TF-IDF

    环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-3.1.1 概念TF-IDF(term fre ...

  7. C++前置声明

    [1]一般的前置函数声明 见过最多的前置函数声明,基本格式代码如下: #include <iostream> using namespace std; void fun(char ch, ...

  8. OpenCV LK光流法测试

    OpenCV版本: 3.2.0 例程文件目录/samples/cpp/lkdemo.cpp 原始程序是采集相机数据,台式机没有摄像头,用Euroc测试集,偷ORB_SLAM2 /Examples/Mo ...

  9. 爬取小说 spider

    1.代码: # -*- coding:UTF- -*- from bs4 import BeautifulSoup import requests, sys """ 类说 ...

  10. 计算属性(computed)、方法(methods)和侦听属性(watch)的区别与使用场景

    1,computed 能实现的,methods 肯定也能够实现. 2,不同之处在于,computed 是基于他的依赖进行缓存的,computed 只有在他的的相关依赖发生改变的时候才会重新计算. 如果 ...