Mega Code Archive

 
Categories / C# / Thread
 

My Main Class Async Call back

/*  * C# Programmers Pocket Consultant  * Author: Gregory S. MacBeth  * Email: gmacbeth@comporium.net  * Create Date: June 27, 2003  * Last Modified Date:  * Version: 1  */ using System; using System.Threading; using System.Runtime.Remoting.Messaging; namespace Client.Chapter_15___Threading {   public class MyMainClassAsyncCallback   {     delegate int MyDelegate(string s, ref int a, ref int b);     static void Main(string[] args)     {       MyDelegate X = new MyDelegate(DoSomething);       int a = 0;       int b = 0;       //Making Async Call that calls a callback when finished       AsyncCallback cb = new AsyncCallback(DoSomething2);       IAsyncResult ar = X.BeginInvoke("Hello", ref a, ref b, cb, null);       Console.ReadLine();     }     //My Async Method     static int DoSomething(string s, ref int a, ref int b)     {       a = 10;       b = 100;       Console.WriteLine("Fired! DoSomething1");       return 0;     }     //Mycallback method when finished running DoSomehting     static void DoSomething2(IAsyncResult ar)     {       int a = 0;       int b = 0;       Console.WriteLine("Fired! DoSomething2");       //Get the delegate       MyDelegate X = (MyDelegate)((AsyncResult)ar).AsyncDelegate;       //get results       X.EndInvoke(ref a, ref b, ar);       Console.WriteLine(a);       Console.WriteLine(b);     }   } }