文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>各种异步操作的实现方式

各种异步操作的实现方式

时间:2011-03-24  来源:DCBI

总结对比各种异步操作的实现方式

实现异步,主要包含以下几种方法

1)  使用专用线程,方法为:

System.Threading.ThreadStart ts = new System.Threading.ThreadStart(void(object state) target);

System.Threading.Thread th = new System.Threading.Thread(ts);

ts.Start();

调用Start()方法之前,并没有实质性得创建线程资源,而是Start()后才进行创建,此种方式的好处在于能设置线程是前台线程还是后台线程,并且能控制线程的挂起和消亡

2)  使用线程池中的线程
线程是一种比较宝贵的资源,所以使用的时候就要加倍珍惜,线程池中线程在使用完成之后并不是马上销毁,而是回到池中等待下一次的使用,这样就可以较少线程创建的消耗。使用方法如下:

ThreadPool.QueueUserWorkItem(WaitCallback callback)

需要注意的是此种方法使用的均为后台线程  

3)  使用异步编程模型 【基于事件的异步模式】

这种方法是MS推荐的使用方法,该模型普遍格式为:

BeginXXX(…IAsyCallBack callback,object asyState);

EndXXX(IAsyState ar);

这种模型的好处上面已经有所阐述

4) 使用BackgroundWorker [很弱]

.Net2.0下提供了BackgroundWorker,使用它可以轻易的完成异步操作,并且它还有一些功能上的加强,比如取消操作

 

Control类上的异步调用BeginInvoke并没有开辟新的线程完成委托任务,而是让界面控件的所属线程完成委托任务的。看来异步操作就是开辟新线程的说法不一定准确。

http://www.youku.com/playlist_show/id_1803099.html MIT算法

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载