委托回调的异步技术
static void Main(string[] args){//DateTime dt = DateTime.Now;//RemoteObject.MyObject app = new RemoteObject.MyObject();//Console.WriteLine(app.ALongTimeMethod(1, 2, 1000));//Method();//Console.WriteLine("用了" + ((TimeSpan)(DateTime.Now - dt)).TotalSeconds + "秒");//Console.ReadLine();
DateTime dt = DateTime.Now;//RemoteObject.MyObject app=(RemoteObject.MyObject)Activator.GetObject(typeof(RemoteObject.MyObject),System.Configuration.ConfigurationSettings.AppSettings["ServiceURL"]);RemoteObject.MyObject app = new RemoteObject.MyObject();md = new MyDelegate(app.ALongTimeMethod);AsyncCallback ac = new AsyncCallback(MyClient.CallBack);IAsyncResult Iar = md.BeginInvoke(1, 2, 1000, ac, null);Method();Console.WriteLine("用了" + ((TimeSpan)(DateTime.Now - dt)).TotalSeconds + "秒");Console.ReadLine();}private delegate int MyDelegate(int a, int b, int time);private static MyDelegate md;public static void CallBack(IAsyncResult Iar){if (Iar.IsCompleted){Console.WriteLine("結果是" + md.EndInvoke(Iar));}}private static void Method(){Console.WriteLine("主線程方法開始");System.Threading.Thread.Sleep(3000);Console.WriteLine("主線程方法結束");}
與普通代理異步沒有多大的區別,只是多了一個參數,參數就是回調方法
轉載于:https://www.cnblogs.com/wangchuang/p/4913373.html
總結
- 上一篇: hacker rank bash
- 下一篇: HackerRank python练习