Mega Code Archive

 
Categories / C# / Language Basics
 

Delegate BeginInvoke of IAsyncResult

using System; using System.Threading;     class AsyncDelegatesBlocked {     public static int Add(int op1, int op2, out int result)     {         Thread.Sleep(3000);         return (result = op1 + op2);     }     public delegate int AddDelegate(int op1, int op2,out int result);         static void Main()     {         int result;         AddDelegate add = new AddDelegate(Add);             IAsyncResult iAR = add.BeginInvoke(6, 42, out result,null, null);             for (int i = 0; i < 10; i++)          {             Thread.Sleep(200);             Console.Write(".");         }         iAR.AsyncWaitHandle.WaitOne();             add.EndInvoke(out result, iAR);             Console.WriteLine("[Main] The result is {0}", result);     } }