Mega Code Archive

 
Categories / C# Tutorial / Development
 

Async Callback Delegate

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