• 异步


    一).描述
      先运行个简单的线程示例,认识一下线程
      通过委托调用方法,以及使用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();
      }
     }
    }

  • 相关阅读:
    spring总结
    mybatis总结
    HttpClient,okhttp,Jodd-http 使用上的差异
    RPC序列化
    RPC是什么? (学习笔记)
    MySQL普通索引与唯一索引
    MySQL 存储引擎
    TCP的流量控制和拥塞控制
    【转载】Windows自带.NET Framework版本大全
    [知识点] 总目录
  • 原文地址:https://www.cnblogs.com/zjbtony/p/1208778.html
Copyright © 2020-2023  润新知