// Callback method static void CallbackMethod(IAsyncResult asyncRes) { Console.WriteLine("Callback invoked"); AsyncResult ares = (AsyncResult)asyncRes; SomeDelegateTwo delg = (SomeDelegateTwo)ares.AsyncDelegate; int result = delg.EndInvoke(asyncRes); Console.WriteLine(result); }
static void Main(string[] args) { SomeDelegateTwo sd = SquareNumber; // Create delegate instance Console.WriteLine("Before SquareNumber Method Invoke"); // async call IAsyncResult asyncRes = sd.BeginInvoke(10, new AsyncCallback(CallbackMethod), null); Console.WriteLine("Back to Main Method. Doing Extra Processing..."); Thread.Sleep(500); Console.WriteLine("Main method processing completed"); Console.ReadLine(); }