C#多线程整理(二)

来源:互联网 发布:经传软件免费版 编辑:程序博客网 时间:2024/05/17 08:08

使用委托进行异步调用:

public class TimeConsuming

{

public string OneTimeConsumingMethod()

{

System.Threading.Thread.Sleep(5000); //sleep 5 seconds
return "over";

}


}

 

public class Invoker

{

private delegate string OneTimeConsumingMethodHandler();

public void Execute()

{

OneTimeConsumingMethodHandler h=new OneTimeConsumingMethodHandler(new TimeConsuming().OneTimeConsumingMethod);

//这里开始异步调用

h.BeginInvoke(InvokeCallBack,null);

}

 

private void InvokeCallBack(IAsyncResult r)

{

//这里方法执行返回处理

var asyncRuslt =
                    (System.Runtime.Remoting.Messaging.AsyncResult)r;

 var asyncDel = (OneTimeConsumingMethodHandler)asyncRuslt.AsyncDelegate;

 result = asyncDel.EndInvoke(r);


}


}

原创粉丝点击