delegate BeginInvoke of IAsyncResult
using System; using System.Threading; class AsyncDelegatesBlocked { public static int Add(int op1, int op2, out int result) { Thread.Sleep(3000); return (result = op1 + op2); } public delegate int AddDelegate(int op1, int op2,out int result); static void Main() { int result; AddDelegate add = new AddDelegate(Add); IAsyncResult iAR = add.BeginInvoke(6, 42, out result,null, null); for (int i = 0; i < 10; i++) { Thread.Sleep(200); Console.Write("."); } iAR.AsyncWaitHandle.WaitOne(); add.EndInvoke(out result, iAR); Console.WriteLine("[Main] The result is {0}", result); } }
1. | Async Delegate Invocation | ||
2. | Async Delegates Callback | ||
3. | What happens if an unhandled exception is raised in a multicast delegate? |