public string asyncRun() { AsyncCallback mycb = new AsyncCallback(ExeCmds); mydelegate md = new mydelegate(getResult); IAsyncResult ar = md.BeginInvoke(mycb, null); ar.AsyncWaitHandle.WaitOne(); return(md.EndInvoke(ar)); }
static void Main(string[] args) { Console.WriteLine("Main Thread:" + Thread.CurrentThread.ManagedThreadId); mydelegate myd = new mydelegate(myfunc); Console.WriteLine("Normal Call"); myd(); Console.WriteLine("Invoke Call"); myd.Invoke(); Console.WriteLine("BeginInvoke Call"); IAsyncResult iar = myd.BeginInvoke(null, null); Console.WriteLine("Wait BeginInvoke Call"); myd.EndInvoke(iar); }