网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

实现增强的异步任务执行组件

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/12/13

1 2 3 4 5 6 7 8 9 10 下一页

  概述

  在应用程序中,可能会遇到一些执行耗时的功能操作,比如数据下载、复杂计算及数据库事务等,一般这样的功能会在单独的线程上实现,避免出现用户界面长时间无响应情况。在.net 2.0中,FCL提供了BackgroundWorker组件来方便的实现这些功能要求,该组件在功能上的确很吸引人。本文将实现一个增强的BackgroundWorker组件,支持基于事件的多任务异步操作。

  功能介绍

  BackgroundWorker 组件采用基于事件的异步模式简化了多线程操作编程,不过其不能对多个异步任务生命期进行管理,因此开发人员可能会通过使用多个 BackgroundWorker实例来应对异步操作密集的情况。MultiBackgroundWorker组件解决多任务的问题,使得单个实例对多个异步任务的生命期进行集中管理,对于每个任务同样提供异步任务操作请求,异步任务执行进度汇报以及异步任务结束通知。

  异步任务操作请求。MultiBackgroundWorker组件提供了RunWorkerAsync方法来开始一个异步操作的请求,该方法需要一个参数来唯一标识新的异步任务,如果任务执行过程中需要用到相关信息数据可以通过第二个参数传入。

  public virtualvoid RunWorkerAsync(object taskId, object argument);

  在RunWorkerAsync方法调用后,MultiBackgroundWorker会生成一个新的异步任务,并对其生命周期进行管理,同时触发DoWork 事件。

  public event MultiDoWorkEventHandler DoWork;

  在事件处理程序中通过MultiDoWorkEventArgs对象获取参数信息和任务标识。类似于BackgroundWorker 组件,调用程序注册DoWork 事件并在该事件处理程序中编写异步处理逻辑代码。DoWork事件处理程序执行的线程不同于调用RunWorkerAsync 方法的线程,因此,调用线程是UI线程时,在DoWork 事件处理程序中就不能编写访问UI元素的代码,而实际在编写WinForm应用程序时调用线程基本上UI线程,值得注意。

(责任编辑:admin)

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号