static void OldMain() { Console.WriteLine("Main::Thread id = {0}", System.Threading.Thread.CurrentThread.ManagedThreadId); ConProc p = new ConProc(DoSomething); AsyncCallback ac = new AsyncCallback(ACB); IAsyncResult iar = p.BeginInvoke("Parameter", ac, p); }
static void ACB(IAsyncResult iar) { System.Threading.Thread.CurrentThread.IsBackground = false; Console.WriteLine("ACB::Thread id = {0}", System.Threading.Thread.CurrentThread.ManagedThreadId); ConProc p = iar.AsyncState as ConProc; string result = p.EndInvoke(iar); Console.WriteLine("ACB::Thread id = {0}, result = {1}", System.Threading.Thread.CurrentThread.ManagedThreadId, result); }