我眼中委托的真正面貌(三)
2009-05-14 08:28:38 来源:WEB开发网下面我们使用回调方式来执行异步委托:
9(2)回调式异步委托
using System.Threading;
namespace AsyncDelegate
{
class Program
{
//定义委托
delegate void MyDelegate();
static void Main(string[] args)
{
//声明委托对象
MyDelegate ObjDelegate = new MyDelegate(ObjDelegateFun);
//使用异步方式
IAsyncResult ObjIr = ObjDelegate.BeginInvoke(new AsyncCallback(CallbackFun), ObjDelegate);
Console.WriteLine("委托方法执行中.");
Console.ReadLine();
}
static private void ObjDelegateFun()
{
Thread.Sleep(5000);
Console.WriteLine("委托方法调用成功!");
}
static private void CallbackFun(IAsyncResult ar)
{
MyDelegate ObjDelegate = (MyDelegate)ar.AsyncState;
ObjDelegate.EndInvoke(ar);
Console.WriteLine("回调方法执行完毕!");
Console.ReadLine();
}
}
}
更多精彩
赞助商链接