.net组件中的多线程处理

参考MSDN

“多线程处理”指的是一个程序同时执行多个操作线程的能力,多线程处理可以是组件编程中的一个非常强大的工具。通过编写多线程组件,您可以创建在后台执行复杂计算的组件,它们允许用户界面 (UI) 在计算的过程中自由地响应用户输入。

在组件中进行多线程处理可以采用以下几种方式:

1.  使用 System.Threading 对组件进行多线程编程,提供支持多线程编程的类和接口,比如Thread,ThreadStart. “使用 Visual C# 创作简单的多线程组件”就是这样的例子http://msdn.microsoft.com/zh-cn/library/48cfdff6(v=vs.110).aspx。

2.  BackgroundWorker 组件该组件替换了 System.Threading 命名空间并添加了功能。使您可以在与应用程序的主 UI 线程不同的线程上在后台运行耗时的操作,如图像下载、Web 服务调用、文件下载和上载(包括点对点应用程序)、复杂的本地计算、数据库事务、本地磁盘访问(相对于内存访问来说其速度很慢)等耗时的操作,BackgroundWorker组件可以提供一种方便的解决方案。具体使用参见http://msdn.microsoft.com/zh-cn/library/c8dcext2(v=vs.80).aspx

3.  基于事件的异步模式。System.Threading 命名空间提供了创建高性能多线程应用程序所必需的所有工具,但要想有效地使用这些工具,需要有丰富的使用多线程软件工程的经验。对于相对简单的多线程应用程序,BackgroundWorker 组件提供了一个简单的解决方案。对于更复杂的异步应用程序,请考虑实现一个符合基于事件的异步模式的类。

基于事件的异步模式具有多线程应用程序的优点,同时隐匿了多线程设计中固有的许多复杂问题。使用支持此模式的类,您将能够:

1).“在后台”执行耗时任务(例如下载和数据库操作),但不会中断您的应用程序。

2).同时执行多个操作,每个操作完成时都会接到通知。

3).等待资源变得可用,但不会停止(“挂起”)您的应用程序。

4).使用熟悉的事件和委托模型与挂起的异步操作通信。

具体使用参见http://msdn.microsoft.com/zh-cn/library/hkasytyf(v=vs.80).aspx

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值