.NET 多线程与并行编程全解析
异步委托相关要点
在异步委托的使用中,输出可能会有所不同。有时在加法运算完成后,还会看到最后的 “Working…” 打印信息,这是 Main() 方法中强制延迟 1 秒的结果。
-
AsyncResult类的作用
当前AddComplete()方法无法打印出两数相加的实际结果,原因是AsyncCallback委托的目标方法(本示例中的AddComplete())无法访问在Main()作用域中创建的原始BinaryOp委托,所以不能在AddComplete()内部调用EndInvoke()。
虽然可以将BinaryOp变量声明为类的静态成员变量,让两个方法都能访问同一对象,但更优雅的解决方案是使用传入的IAsyncResult参数。传入AsyncCallback委托目标的IAsyncResult参数实际上是System.Runtime.Remoting.Messaging命名空间中定义的AsyncResult类的实例。其静态AsyncDelegate属性返回对在其他地方创
超级会员免费看
订阅专栏 解锁全文
169万+

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



