首页 > 编程语言 > 详细

使用异步委托执行线程(delegate)

时间:2014-10-12 00:16:28      阅读:364      评论:0      收藏:0      [点我收藏+]

由于异步委托产生的线程与应用程序主线程是分开执行的,若主线程要获取异步委托线程的结果,则主线程需要等待异步委托的执行结果。

BeginInvoke是Delegate类型的一个方法,它的返回类型为IAsyncResult,通过该接口,可以获得异步委托的执行信息。

1、投票技术:等待异步委托结果的一种方法是投票技术,该技术的实现原理是通过IAsyncResult接口的IsComplete属性来检查委托是否完成了任务。EndInvote方法获取执行结果。举个例子,如下:

bubuko.com,布布扣

执行后的效果:

bubuko.com,布布扣

2、访问等待句柄技术:是等待异步委托结果的第二种方法,其实也就是使用IAsyncResultAsync接口的AsyncWaitHandle属性来访问等待句柄的,通过该属性获得一个WaitHandle对象,WaitHandle对象有个方法WaitOne()。

代码如下:

bubuko.com,布布扣

执行效果:

bubuko.com,布布扣

 

使用异步委托执行线程(delegate)

原文:http://www.cnblogs.com/jason-davis/p/4019948.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!