zoukankan      html  css  js  c++  java
  • 异步

    一).描述
      先运行个简单的线程示例,认识一下线程
      通过委托调用方法,以及使用AsyncResult判断线程的状态

    (二).代码
    using System;
    using System.Threading;
    using System.Runtime.Remoting.Messaging;

    namespace 通过委托异步调用方法

     //委托声明(函数签名)
     delegate string MyMethodDelegate();

     class MyClass
     {
      //要调用的动态方法
      public string MyMethod1()
      {
       return "Hello Word1";
      }

      //要调用的静态方法
      public static string MyMethod2()
      {
       return "Hello Word2";
      }
     }
     class Class1
     {
      /// <summary>
      /// 应用程序的主入口点。
      /// </summary>
      [STAThread]
      static void Main(string[] args)
      {
                MyClass myClass = new MyClass();
       
       //方式1:  声明委托,调用MyMethod1
       MyMethodDelegate d = new MyMethodDelegate(myClass.MyMethod1);
       string strEnd = d();   
       Console.WriteLine(strEnd);

       //方式2:  声明委托,调用MyMethod2 (使用AsyncResult对象调用)
       d = new MyMethodDelegate(MyClass.MyMethod2); //定义一个委托可以供多个方法使用      
       AsyncResult myResult;   //此类封闭异步委托异步调用的结果,通过AsyncResult得到结果.
       myResult = (AsyncResult)d.BeginInvoke(null,null);        //开始调用
       while(!myResult.IsCompleted)  //判断线程是否执行完成
       {
        Console.WriteLine("正在异步执行MyMethod2 .....");
       }
       Console.WriteLine("方法MyMethod2执行完成!");
       strEnd = d.EndInvoke(myResult);      //等待委托调用的方法完成,并返回结果  
       Console.WriteLine(strEnd);
       Console.Read();
      }
     }
    }

  • 相关阅读:
    Swift中的可选链与内存管理(干货系列)
    Swift中的类型转换
    Swift中类与结构的初始化
    Swift3中函数的使用
    Java常用的公共方法
    Eclipse中添加文档注释快捷键
    SVN服务器的搭建(三)
    SVN服务器的搭建(二)
    SVN服务器的搭建(一)
    多线程常见的例子
  • 原文地址:https://www.cnblogs.com/zjbtony/p/1208778.html
Copyright © 2011-2022 走看看