//定义委托       
 delegate string MyDelegate(string name);

//定义委托调用函数
         public string Hello(string name)
         {
             Thread.Sleep(10000);            //虚拟异步工作
             return "Hello " + name;
         }


//以下调用并获取返回值

        private void Form1_Load(object sender, EventArgs e)
        {
            //建立委托
             MyDelegate myDelegate = new MyDelegate(Hello);
             //异步调用委托,获取委托执行函数返回的执行结果
             IAsyncResult result=myDelegate.BeginInvoke("Leslie", null, null);

            //定义一个变量接收委托函数执行的返回结果
            string data="";
            
            //判断如果异步执行是否完
            while (result.IsCompleted==false)
            {
                Thread.Sleep(20);
               
            }
             
            //如果异步函数执行完成则获取返回结果
            data = myDelegate.EndInvoke(result);
        }

 IAsyncResult的相关说明:

public interface IAsyncResult
{
object AsyncState {get;} //获取用户定义的对象,它限定或包含关于异步操作的信息。
WailHandle AsyncWaitHandle {get;} //获取用于等待异步操作完成的 WaitHandle。
bool CompletedSynchronously {get;} //获取异步操作是否同步完成的指示。
bool IsCompleted {get;} //获取异步操作是否已完成的指示。
}

相关文章:

  • 2022-12-23
  • 2021-05-08
  • 2022-03-03
  • 2021-10-27
  • 2022-12-23
猜你喜欢
  • 2021-09-19
  • 2022-12-23
  • 2021-09-15
  • 2022-03-04
  • 2022-12-23
相关资源
相似解决方案