Mega Code Archive

 
Categories / C# Tutorial / Thread
 

Asynchronous Calls with Return Values

using System; using System.Threading; class MainClass{     public delegate double MathFunctionToCall(double arg);          public static void MathCallback(IAsyncResult iar)     {         MathFunctionToCall mc = (MathFunctionToCall) iar.AsyncState;         double result = mc.EndInvoke(iar);         Console.WriteLine("Function value = {0}", result);     }     public static void CallMathCallback(MathFunctionToCall mathFunc,double start,double end,double increment)     {         AsyncCallback cb = new AsyncCallback(MathCallback);                  Console.WriteLine("BeginInvoke: {0}", start);         mathFunc.BeginInvoke(start, cb, mathFunc);         start += increment;     }     public static void Main()     {         CallMathCallback(new MathFunctionToCall(Math.Sin), 0.0, 1.0, 0.2);         Thread.Sleep(2000);     } } BeginInvoke: 0 Function value = 0