C# 异步执行委托

1.定义一个真正需要执行的方法:比如private string Fun(object datetime){…}
2.定义一个委托类型:比如delegate string FunDelegate(object str);
3.定义一个中间方法:比如private void FunStart(object obj){…}
4.在中间方法中:
a.创建委托对象,绑定和委托签名一致的方法(这里为Fun(…))
b.调用Control.BeginInvoke(委托对象,自定义传入参数obj)。比如:IAsyncResult aResult=this.BeginInvoke(委托对象,obj.ToString());
bool xh=aResult.AsyncWaitHandle.WaitOne(时间间隔);
注释:1.首先调用WaitOne(时间间隔)来等待异步操作完成。
2.当超过指定时间间隔后,异步操作未完成则 WaitHandle未收到完成信号即WaitHandle.WaitOne(…)返回false。
3.当超过指定时间间隔后,异步操作已完成则WaitHandle收到完成信号即WaitHandle.WaitOne(…)返回true。
c.除了调用Control.BeginInvoke(…)方法外,
也可以调用Control.Invoke(委托对象,自定义传入参数obj)。比如:object obj1=this.Invoke(委托对象,obj.ToString());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值