委托
1、Func异步执行
public int Add(int a,int b) { System.Threading.Thread.Sleep(5000); return a + b; } public void AyscAdd(int a,int b,Action<int> callbackAction) { Func<int> func = () => { return Add(a,b); }; func.BeginInvoke((t)=> { var r = func.EndInvoke(t); callbackAction.Invoke(r); },null); } public int SyncAdd(int a,int b) { return Add(a,b); } public void Action() { Console.WriteLine("同步调用开始=>"); int a = SyncAdd(1, 2); Console.WriteLine("同步调用结束:" + a); Console.WriteLine("--------------------------"); Console.WriteLine("异步调用开始=>"); AyscAdd(3, 4, (result) => { Console.WriteLine("异步调用结果:" + result); }); Console.WriteLine("异步调用结束"); Thread.Sleep(1000*10); Console.ReadLine(); }
2、Func同步
public void AyscAdd(int a,int b,Action<int> callbackAction) { Func<int> func = () => { return Add(a,b); }; //func.BeginInvoke((t)=> { // var r = func.EndInvoke(t); // callbackAction.Invoke(r); //},null); var r=func(); callbackAction(r); }

浙公网安备 33010602011771号