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

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

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

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

执行后的效果:

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

代码如下:

执行效果:

 

转载于:https://www.cnblogs.com/jason-davis/p/4019948.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值