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());
C# 异步执行委托
最新推荐文章于 2024-06-27 17:08:24 发布