static void Main(string[] args) { Console.WriteLine("Thread {0}", Thread.CurrentThread.ManagedThreadId); Operacao o = new Operacao(Somar); IAsyncResult iar = o.BeginInvoke(10, 5, new AsyncCallback(OperacaoCompleta), "uma string qualquer"); while (!terminou) { Console.WriteLine(" aguardando..."); Thread.Sleep(500); } Console.ReadKey(); }
static void Main(string[] args) { Console.WriteLine("Thread {0}", Thread.CurrentThread.ManagedThreadId); Operacao o = new Operacao(Somar); IAsyncResult iar = o.BeginInvoke(10, 5, new AsyncCallback(OperacaoCompleta), null); while (!terminou) { Thread.Sleep(1000); Console.WriteLine(" aguardando..."); } Console.WriteLine("{0} - {1}", o.Method.Name, o.EndInvoke(iar)); Console.ReadKey(); }
static void Main(string[] args) { Console.WriteLine("Thread {0}", Thread.CurrentThread.ManagedThreadId); Operacao o = new Operacao(Somar); IAsyncResult iar = o.BeginInvoke(10, 5, null, null); Console.WriteLine("{0} - {1}", o.Method.Name, o.EndInvoke(iar)); o = new Operacao(Subtrair); iar = o.BeginInvoke(10, 5, null, null); Console.WriteLine("{0} - {1}", o.Method.Name, o.EndInvoke(iar)); Console.ReadKey(); }
static void Main(string[] args) { Console.WriteLine("Thread {0}", Thread.CurrentThread.ManagedThreadId); Operacao o = new Operacao(Somar); IAsyncResult iar = o.BeginInvoke(10, 5, null, null); while (!iar.AsyncWaitHandle.WaitOne(1000, true)) Console.WriteLine(" aguardando..."); Console.WriteLine("{0} - {1}", o.Method.Name, o.EndInvoke(iar)); o = new Operacao(Subtrair); iar = o.BeginInvoke(10, 5, null, null); while (!iar.AsyncWaitHandle.WaitOne(5000, true)) Console.WriteLine(" aguardando..."); Console.WriteLine("{0} - {1}", o.Method.Name, o.EndInvoke(iar)); Console.ReadKey(); }