Async Delegate (异步委托)
委托实例执行操作默认同步执行,但委托实例同样可以异步执行操作。
-
使用
BeginInvoke()进行异步回调BeginInvoke()除了接收原有委托签名的参数之外,参数表尾部额外带有两个参数,分别为AsyncCallback委托类型和object类型:AsyncCallback委托在回调委托运行结束之后触发,AsyncCallback委托接收一个IAsyncResult类型的参数。object类型用于传递一些参数给AsyncCallback委托。
BeginInvoke()的最后两个参数可以为null。
BeginInvoke()返回IAsyncResult类型:- 使用
IAsyncResult.IsCompleted属性可以判断回调委托的执行状态。 - 使用
IAsyncResult.AsyncState属性获取BeginInvoke()参数表中的最后一个object类型的传入参数。
-
使用
EndInvoke()等待异步委托返回若需等待异步执行的委托结束,可以使用
EndInvoke()成员函数。EndInvoke()接受一个IAs

本文介绍了C#中如何使用异步委托进行异步操作。异步委托通过添加额外的参数并配合BeginInvoke和EndInvoke方法实现。通过IsCompleted属性检查委托执行状态,WaitHandle属性获取等待句柄,以及使用WaitOne方法设置超时等待,确保线程同步。示例代码展示了异步委托的使用方式及其在等待和超时处理中的应用。

1897

被折叠的 条评论
为什么被折叠?



