delegate BeginInvoke of IAsyncResult : Delegate Async « Language Basics « C# / C Sharp






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);
    }
}

 








Related examples in the same category

1.Async Delegate Invocation
2.Async Delegates Callback
3.What happens if an unhandled exception is raised in a multicast delegate?