异步的知识

ContractedBlock.gif ExpandedBlockStart.gif Code
实现异步,主要包含以下几种方法 

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,使用它可以轻易的完成异步操作,并且它还有一些功能上的加强,比如取消操作、 

转载于:https://www.cnblogs.com/z2002m/archive/2009/07/27/1532102.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值