<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      實(shí)際開發(fā)中,對(duì)于一些耗時(shí)較長的操作,我們往往會(huì)將其封裝成異步方式調(diào)用,以加速系統(tǒng)響應(yīng)或改善用戶體驗(yàn),下面是一個(gè)示例:

      有一個(gè)現(xiàn)成的類MyMath,里面有一個(gè)Add方法: 

      復(fù)制代碼
       1     public class MyMath
       2     {
       3 
       4         public int Add(int a, int b)
       5         {
       6             System.Threading.Thread.Sleep(5000);
       7             return a + b;
       8         }
       9 
      10     }
      復(fù)制代碼

      對(duì)Add方法做下封裝,對(duì)了對(duì)比,同時(shí)提供“同步調(diào)用”與"異步調(diào)用"二個(gè)版本:

      復(fù)制代碼
       1         /// 異步調(diào)用
       2         /// </summary>
       3         /// <param name="a"></param>
       4         /// <param name="b"></param>
       5         /// <param name="callBackAction"></param>
       6         /// <returns></returns>
       7         static void AyscAdd(int a, int b, Action<int> callBackAction)
       8         {
       9             Func<int> func = () =>
      10             {
      11                 return new MyMath().Add(a, b);
      12             };
      13             func.BeginInvoke((ar) =>
      14             {
      15                 var result = func.EndInvoke(ar);
      16                 callBackAction.Invoke(result);
      17             },
      18             null);
      19 
      20         }
      21 
      22         /// <summary>
      23         /// 同步調(diào)用
      24         /// </summary>
      25         /// <param name="a"></param>
      26         /// <param name="b"></param>
      27         /// <returns></returns>
      28         static int SyncAdd(int a, int b)
      29         {
      30             return new MyMath().Add(a, b);
      31         }
      復(fù)制代碼

      最后調(diào)用驗(yàn)證:

      復(fù)制代碼
       1         static void Main(string[] args)
       2         {
       3             Console.WriteLine("同步調(diào)用開始=>");
       4             int a = SyncAdd(1, 2);
       5             Console.WriteLine("同步調(diào)用結(jié)束:" + a);
       6 
       7             Console.WriteLine("--------------------------");
       8 
       9             Console.WriteLine("異步調(diào)用開始=>");
      10             AyscAdd(3, 4, (result) =>
      11             {
      12                 Console.WriteLine("異步調(diào)用結(jié)果:" + result);
      13             });
      14             Console.WriteLine("異步調(diào)用結(jié)束");
      15 
      16             Console.ReadLine();
      17         }
      復(fù)制代碼

      完整代碼:

      復(fù)制代碼
       1 using System;
       2 
       3 namespace ActionDemo
       4 {
       5     class Program
       6     {
       7         static void Main(string[] args)
       8         {
       9             Console.WriteLine("同步調(diào)用開始=>");
      10             int a = SyncAdd(1, 2);
      11             Console.WriteLine("同步調(diào)用結(jié)束:" + a);
      12 
      13             Console.WriteLine("--------------------------");
      14 
      15             Console.WriteLine("異步調(diào)用開始=>");
      16             AyscAdd(3, 4, (result) =>
      17             {
      18                 Console.WriteLine("異步調(diào)用結(jié)果:" + result);
      19             });
      20             Console.WriteLine("異步調(diào)用結(jié)束");
      21 
      22             Console.ReadLine();
      23         }
      24 
      25         /// <summary>
      26         /// 異步調(diào)用
      27         /// </summary>
      28         /// <param name="a"></param>
      29         /// <param name="b"></param>
      30         /// <param name="callBackAction"></param>
      31         /// <returns></returns>
      32         static void AyscAdd(int a, int b, Action<int> callBackAction)
      33         {
      34             Func<int> func = () =>
      35             {
      36                 return new MyMath().Add(a, b);
      37             };
      38             func.BeginInvoke((ar) =>
      39             {
      40                 var result = func.EndInvoke(ar);
      41                 callBackAction.Invoke(result);
      42             },
      43             null);
      44 
      45         }
      46 
      47         /// <summary>
      48         /// 同步調(diào)用
      49         /// </summary>
      50         /// <param name="a"></param>
      51         /// <param name="b"></param>
      52         /// <returns></returns>
      53         static int SyncAdd(int a, int b)
      54         {
      55             return new MyMath().Add(a, b);
      56         }
      57     }
      58 
      59     public class MyMath
      60     {
      61 
      62         public int Add(int a, int b)
      63         {
      64             System.Threading.Thread.Sleep(5000);
      65             return a + b;
      66         }
      67 
      68     }
      69 }
      復(fù)制代碼

      輸出結(jié)果如下:

      同步調(diào)用開始=>
      同步調(diào)用結(jié)束:3
      --------------------------
      異步調(diào)用開始=>
      異步調(diào)用結(jié)束
      異步調(diào)用結(jié)果:7

      posted on 2015-07-13 11:57  也風(fēng)  閱讀(631)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 亚洲AV旡码高清在线观看| 99精品国产兔费观看久久99| 亚洲精品无码日韩国产不卡av| 亚洲欧美日韩国产精品专区| 亚洲人成网站色7799| 香蕉亚洲欧洲在线一区| 激情综合网激情综合网五月 | 亚洲精品久久无码av片软件| 久久综合国产一区二区三区| 免费看视频的网站| 国产成人AV男人的天堂| 久久精品国产99亚洲精品| 国产亚洲精品久久久久5区| 被黑人巨大一区二区三区| 人妻丝袜AV中文系列先锋影音| 亚洲一本大道无码av天堂| 视频一区视频二区卡通动漫| 99在线精品国自产拍中文字幕 | 国产熟睡乱子伦视频在线播放| 成人污视频| 欧美乱码伦视频免费| 精品乱码一区内射人妻无码| 伊人色综合九久久天天蜜桃| 亚洲乱理伦片在线观看中字| 中文字幕人妻精品在线| 国产一区视频一区欧美| 国产成人精选视频在线观看不卡| 清水县| 国产成人精品1024免费下载| 国产精品一区二区三区黄色| 怡春院久久国语视频免费| 国产精品亚洲а∨无码播放| 国产欧美日韩精品丝袜高跟鞋| 精品亚洲欧美高清不卡高清| 青草青草久热精品视频在线观看| 一本av高清一区二区三区| 激情四射激情五月综合网| 这里只有精品免费视频| 亚洲av成人区国产精品| 日韩人妻一区中文字幕| 精品国偷自产在线视频99|