BackgroundWorker之启动任务

public static void RunBackgroundTask<T>(Func<T> argBackgroundFunc,Action<T> argCompletedAction)
{
    BackgroundWorker worker = new BackgroundWorker();
    worker.DoWork += (sender,e) => e.Result = argBackgroundFunc();
    if(argCompletedAction != null)
    {
        worker.RunWorkerCompleted += (sender,e) => argCompletedAction((T)e.Result);
    }

    worker.RunWorkerAsync();
}

调用:

 1 BackgroundTask.RunBackgroundTask<List<PevcOrg>>(()=>
 2 {
 3     return pevcService.GetAll().FindAll(x=>x.Name.Contains(fundName));
 4 },
 5 ltOrg =>
 6 {
 7     if(ltOrg != null)
 8     {
 9     SetDataGridSource(ltOrg);
10     }
11 });

  

时间: 2024-10-10 05:14:59

BackgroundWorker之启动任务的相关文章

BackgroundWorker控件使用(一)

BackgroundWorker控件简介 使用BackgroundWorker控件可以在后台单独的线程上执行操作,通常用于数据库操作.文件下载等相对耗时一般要求后台处理的任务.使用起来比较简单,如果需要后台处理的任务少的话,①在VS中可以直接从工具箱中拖一个BackgroundWorker到主界面中即可,自动命名backgroundWorker1.②或者手动声明初始化BackgroundWorker类新实例:BackgroundWorker bgw=new BackgroundWorker():

异步编程、线程和任务

用鼠标操作,我们习惯了延迟,过去几十年都是这样.有了触摸UI,应用程序要求立刻响应用户的请求. C#5.0提供了更强大的异步编程,仅添加了两个新的关键字:async和await. 使用异步编程,方法调用是在后头运行(通常在线程和任务的帮助下),并且不会阻塞调用线程. => 所以 异步编程应该就是使用线程和任务进行编程. 另外,异步委托也是在线程和任务的帮助下完成的,它是基于事件的异步模式. 1.首先先了解一个概念:(WPF的,应该和WindowsForm差不多) 在WindowsForm和WPF

(转)C# 使用BackgroundWorker

本文转载自:http://blog.csdn.net/andrew_wx/article/details/6615077 该例子为使用BackgroundWorker在TextBox文本中产生一个10000以内并且能被5整除的数(1秒产生一个) 操作界面可以启动线程,也可以停止线程,界面设计如图: 先贴代码,有注释的地方就不解释了. 整个Form1窗体代码如下 引入命名空间: using System.Threading; using System.Net; 完整代码: namespace Ba

C# BackgroundWorker 详解

C# BackgroundWorker 详解 在C#程序中,经常会有一些耗时较长的CPU密集型运算,如果直接在 UI 线程执行这样的运算就会出现UI不响应的问题.解决这类问题的主要途径是使用多线程,启动一个后台线程,把运算操作放在这个后台线程中完成.但是原生接口的线程操作有一些难度,如果要更进一步的去完成线程间的通信就会难上加难. 还好 .NET 类库中提供了一个叫做 BackgroundWorker 的类可以比较优雅的解决这类问题.虽然BackgroundWorker 类使用起来比较简单,但其

简单多线程BackgroundWorker

BackgroundWorker是·net里用来执行多线程任务的控件,它允许编程者在一个单独的线程上执行一些操作.在开发多线程程序时,有些时候仅仅只是想实现一个简单的多线程,并不需要写一大堆的委托.回调等等,那么BackgroundWorker便是最好的选择.本Demo演示BackgroundWorker在WPF中的简单线程例子! ---------------------------------------------------------------------XAML代码--------

【C#】【Thread】BackgroundWorker的使用

BackgroundWorker 可以用于启动后台线程. 主要的事件及参数: 1.DoWork --当执行BackgroundWorker.RunWorkerAsync方法时会触发该事件,并且传递DoWorkEventArgs参数; 2.RunWorkerCompleted --异步操作完成或中途终止会触发该事件. 如果需要提前终止执行后台操作,可以调用BackgroundWorker.CancelAsync方法. 在处理DoWork事件的函数中检测BackgroundWorker.Cancel

backgroundWorker

使用情形:在程序中,经常会有一些耗时较长的运算,为了保证用户体验,不引起界面不响应,我们一般会采用多线程操作.于是.net就有了backgroundWorker(后台进程). 使用十分简单,只用考虑三个事件就ok. backgroundWorker1.RunWorkerAsync();//启动该线程,调用dowork private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { doing(); } priva

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

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

C# backgroundworker使用方法

# BackgroundWorker 控件的几个实例(C# backgroundworker使用方法): 在 WinForms 中,有时要执行耗时的操作,在该操作未完成之前操作用户界面,会导致用户界面停止响应.解决的方法就是新开一个线程,把耗时的操作放到线程中执行,这样就可以在用户界面上进行其它操作.新建线程可以用 Thread 类,可以实现多线程同时操作,简单的可以通过 BackgroundWorker 类实现. 用 BackgroundWorker 类执行耗时的操作BackgroundWor