C# 异步编程: 不需要等待,谁先出结果谁先出来
(1) 创建委托变量并指向具体方法(代表方法)
**通过委托异步调用方法:
*委托类型的BeginInvoke(<输入和输出变量>,AsyncCallback callback,object asyncState)方法 异步调用的核心, BeginInvoke(多线程能执行的原因):输入和输出变量:表式委托对应的实参。第二个参数:回调函数,表示异步调用后自动调用的函数。第三个参数:用于向回调函数提供参数信息。返回值:IasyncResult:异步操作状态接口,封装了异步执行中的参数。EndInvoke监视BeginInvoke。委托类型的EndInvoke()方法:借助IasyncResult接口对象,不断查询异步调用是否结束。该方法知道异步调用的方法所有参数,所以,异步调用完毕后,取出异步调用的结果作为返回值。
(2) 异步调用任务:
IasyncResult result=委托变量.BeginInvoke(方法的参数,null,null)
(3)同时执行其他任务(非异步)
(4)获取异步执行的结果
任务的类型 res=委托变量.EndInvoke(result);
EndInvoke()方法不断循环检测运算是否结束。
总的思想:方法是通过委托变量的委托BeginInvoke()对象异步执行,EndInvoke()观察异步执行是否完
原文:http://www.cnblogs.com/bfwbfw/p/6372172.html