Csharp/C Sharp by API/System.Runtime.Remoting.Messaging/AsyncResult

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

AsyncResult.AsyncDelegate

<source lang="csharp"> using System; using System.Collections.Generic; using System.Text; using System.Threading; using System.Runtime.Remoting.Messaging; public delegate int BinaryOp(int x, int y); class Program {

   static void Main(string[] args) {
       BinaryOp b = new BinaryOp(Add);
       IAsyncResult iftAR = b.BeginInvoke(10, 10, new AsyncCallback(AddComplete), "Main() thanks you for adding these numbers.");
       Console.ReadLine();
   }
   static void AddComplete(IAsyncResult itfAR) {
       AsyncResult ar = (AsyncResult)itfAR;
       BinaryOp b = (BinaryOp)ar.AsyncDelegate;
       Console.WriteLine("10 + 10 is {0}.", b.EndInvoke(itfAR));
       string msg = (string)itfAR.AsyncState;
       Console.WriteLine(msg);
   }
   static int Add(int x, int y) {
       Console.WriteLine("Add() invoked on thread {0}.", Thread.CurrentThread.GetHashCode());
       Thread.Sleep(5000);
       return x + y;
   }

}


 </source>