zoukankan      html  css  js  c++  java
  • c#基础之委托 异步 回调 .

                    在程序中使用异步回调,可以通过在不同的线程中执行程序的不同部分.实现程序的快速响应.

    demo如下:

    View Code
     1 class Program
     2     {
     3         internal delegate int methoddelegate(int num1, int num2);// 首先定义一个委托 
     4         static void Main(string[] args)
     5         {
     6             methoddelegate m = add; //创建一个委托  指向add 方法
     7             /** AsyncCallback 是引用某个方法的委托,当异步完成操作时调用该方法,此处设置委托调用后面定义的resultasync 方法*/
     8             AsyncCallback a = resultasync; // asynccallback 指向 resultasync
     9             Console.WriteLine("async invoking the method begin....");
    10             /**使用 BeginInvoke异步调用add 方法 并传入 参数及回调函数
    11              *         BeginInvoke方法异步调用委托,在调用异步委托后,下一条语句会继续执行,
    12              *         该方法返回 IAsyncResult的变量,该变量表示异步操作的状态.
    13              *
    14              */
    15             IAsyncResult ia = m.BeginInvoke(1, 2, resultasync, null);
    16             Console.WriteLine("continus this....");
    17             Console.ReadLine();
    18         }
    19         //定义 resultasync方法获取计算的结果,该方法接受IAsyncResult类型的实参.
    20         static void resultasync( IAsyncResult rd)
    21         {
    22             methoddelegate del = (methoddelegate)((AsyncResult)rd).AsyncDelegate;//通过AsyncDelegate特性获得add方法的委托
    23             int result = del.EndInvoke(rd);//获取异步调用的结果,像其传入变量rd.
    24             Console.WriteLine("result is:" + result);
    25         }
    26         public static int add(int num1, int nu2)
    27         {
    28             //为了演示,延迟执行,已模拟执行较长时间
    29             System.Threading.Thread.Sleep(5000);
    30             return num1 + nu2;
    31         }
    32     }
    代码改变世界,记录知识.
  • 相关阅读:
    LinkedList源码解析
    HashMap源码解析
    HashMap和Hashtable区别
    arcgis api for js 之网络分析服务发布
    arcgis api for js 之发布要素服务
    arcis api for js 值 3.17 本地部署
    ArcGIS 产品体系结构
    layui select下拉框选项不显示
    windows10企业版2016长期服务版激活
    PHP常见的输出语句
  • 原文地址:https://www.cnblogs.com/webOnine/p/2599056.html
Copyright © 2011-2022 走看看