关闭

[C#新手入门 四] Winform 多线程初步 BackgroundWorker的用法

6077人阅读 评论(0) 收藏 举报
分类:

DataGridView App using BackgroundWorker for Async Data Load

http://code.msdn.microsoft.com/DataGridView-App-using-605c1697/view/SourceCode#content

 

backgroundworker使用 实现进度条ProgressBar

http://hi.baidu.com/server126/item/a2508600129959d71ef046d6

 

DataGrid using BackgroundWorker - C#

http://www.mindstick.com/Articles/7f2eeb0d-de48-4496-91c1-4b68a466f4c4/?DataGrid%20using%20BackgroundWorker%20-%20C

 

C#中BackgroundWorker中的DoWork执行了多次

http://www.crifan.com/csharp_backgroundworker_dowork_called_multiple_time/

 

backgroundworker类使用心得

http://www.cnblogs.com/cykevin/articles/1229012.html

 

深度剖析BackgroudWorker类

http://blog.sina.com.cn/s/blog_6fd674050100se72.html

 

在UI程序设计中使用BackgroudWorker进行多线程异步处理

http://blog.sina.com.cn/s/blog_4853e71c0100k0by.html

 

 

 

报错:此 BackgroundWorker 声明它不报告进度。请修改 WorkerReportsProgress 以声明它报告进度。

backgroundWorker2.WorkerReportsProgress=True

 

 

报错:此 BackgroundWorker 当前正忙,无法同时运行多个任务


CancelAsync之后,BackgroundWorker.CancellationPending = true
你要自己处理,具体如下:

private bool DownLoad(BackgroundWorker worker, DoWorkEventArgs e, string[] pramlist)
        {
            for (int i = 0; i < 100; i++)
            {
                 if(worker.CancellationPending)
                {
                   return false;
                }        
                System.Threading.Thread.Sleep(1000);

                worker.ReportProgress(i, "下载开始");
            }
          
            return true;
        }


 


其次Begin加IsBusy判断

private void buttonBegin_Click(object sender, EventArgs e)
        {
             if(backgroundWorker1.IsBusy)
            {
                return;
            }
            string[] pramlist = { "0"};

            backgroundWorker1.WorkerReportsProgress = true;
            backgroundWorker1.WorkerSupportsCancellation = true;
            backgroundWorker1.RunWorkerAsync(pramlist);
        }


 

 

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

支持取消操作和暂停操作的Backgroundworker示例一则

Backgroundworker是默认支持取消功能的,但是默认不支持暂停。本文通过ManualResetEvent技术来实现一个暂停功能,并给出其相关的范例。
  • fanrong1985
  • fanrong1985
  • 2014-11-08 16:47
  • 1089

BackgroundWorker 实现多线程操作

背景介绍:            在做程序的过程中,我们很可能遇到这样的情况:当我们执行一个比较耗时的操作,即界面加载数据量略大的时,在该操作未完成之前再去操作界面,就会出现停止响应的情况,这称为界面...
  • u010028869
  • u010028869
  • 2014-11-30 00:27
  • 3229

IIS 无法读取配置节"system.web.extensions",因为它缺少节声明

今天在本地安装iis,搭建网站,应用程序的时候报错下面的错误:服务器错误 Internet Information Services 7.5 错误摘要 HTTP 错误 500.19 - Interna...
  • xunzaosiyecao
  • xunzaosiyecao
  • 2016-01-20 12:09
  • 9952

[新手入门] 客户端多线程怎么用 保姆级解说(啰里吧嗦)

哇我上次用到的多线程真的是乍一看,非常难/麻烦,其实用过了以后就这样了,还挺方便的 需求:在应用程序点击某按钮后开始运行呈“卡死”状态时(比如检索文件这类,运行时间很长),想要弹提示框,同时让其他...
  • niuniuyaobuyao
  • niuniuyaobuyao
  • 2017-12-29 14:55
  • 60

C#新手入门图文教程---基于winform的一个小例子

  • 2017-10-27 15:56
  • 1.93MB
  • 下载

c# BackGroundWorker 多线程操作的小例子

  • 2009-10-30 10:48
  • 743KB
  • 下载

C#多线程BackgroundWorker使用示例

using System; using System.Collections.Generic; using System.ComponentModel;//// using System.Dat...
  • pukuimin1226
  • pukuimin1226
  • 2012-06-24 14:29
  • 996

C#多线程 BackgroundWorker类使用小例-控制台程序

1. 示例程序 是一个控制台应用程序,程序实现了分别在主线程和后台线程并行执行,达到为数组的赋值效果。   可以中途停止后台线程。 2. 执行结果图片如下: 正常执行结束: 中途停止后台线程:...
  • xuanwuziyou
  • xuanwuziyou
  • 2014-12-03 17:12
  • 1762

C#多线程 BackgroundWorker类使用小例-WPF程序

1.程序实现了一个简单的使用了BackgroundWorker类的WPF程序,用于在后台线程执行给进度条赋值。 运行结果如下: 后台线程正常运行结束: 后台线程中途被取消: 2.程序仅...
  • xuanwuziyou
  • xuanwuziyou
  • 2014-12-04 11:16
  • 1951

c# BackGroundWorker 多线程操作的小例子

在我们的程序中,经常会有一些耗时较长的运算,为了保证用户体验,不引起界面不响应,我们一般会采用多线程操作,让耗时操作在后台完成,完成后再进行处理或给出提示,在运行中,也会时时去刷新界面上的进度条等显示...
  • aminiraA
  • aminiraA
  • 2013-04-14 19:42
  • 332
    个人资料
    • 访问:195858次
    • 积分:2031
    • 等级:
    • 排名:千里之外
    • 原创:65篇
    • 转载:23篇
    • 译文:1篇
    • 评论:122条
    文章分类
    最新评论