c#异步委托的使用

创建线程的一种简单方式是定义一个委托,并异步调用它。 委托是方法的类型安全的引用。Delegate类 还支持异步地调用方法。在后台,Delegate类会创建一个执行任务的线程。

接下来定义一个方法,使用委托异步调用(开启一个线程去执行这个方法)


static int TakesAWhile(int data,int ms){

Console.WriteLine("TakesAWhile started!");

Thread.Sleep(ms);//程序运行到这里的时候会暂停ms毫秒,然后继续运行下一语句

Console.WriteLine("TakesAWhile completed");

return ++data;

}

public delegate int TakesAWhileDelegate(int data,int ms);// 声明委托

static void Main(){

TakesAWhileDelegate d1 = TakesAWhile;

IAsyncResult ar = d1.BeginInvoke(1,3000,null,null);

while(ar.IsCompleted ==false ){

Console.Write(".");

Thread.Sleep(50);

}

int result = d1.EndInvoke(ar);

Console.WriteLine("Res:"+result);

}