C#Action和Func异步委托操作

无返回参数的Action:

 

new Action(() =>
{
    // 异步操作              

}).BeginInvoke(new AsyncCallback(Callback), null);   

 

               

private void Callback(IAsyncResult iar)
{
    if (iar.IsCompleted)
     {

         //完成的执行操作
     }
}

 

有返回参数的Func:

 

 

 new Func<string>(() =>
 {

      Thread.Sleep(2000);  //阻塞两秒

      return "测试返回字符串";

}.BeginInvoke((r) =>

{  

        Func<string> f = (Func<string>)((AsyncResult)r).AsyncDelegate;

        string s = f.EndInvoke(r);

        MessageBox.Show(s);

},null);

posted @ 2012-06-06 15:09  therockthe  阅读(1237)  评论(0)    收藏  举报