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

转载于:https://www.cnblogs.com/qiantuwuliang/archive/2009/05/30/1492507.html

(二)线程--通过委托异步调用方法相关推荐

  1. 17委托异步调用方法

    抽象出一个炒菜的类. 1: //炒菜 2: public class Cooking 3: { 4: public string Cook(string food1, string food2) 5: ...

  2. java 异步调用方法_java异步调用方法有哪些?如何实现异步调用?

    你知道java异步调用方法都有哪些吗?下面的文章内容,就对这方面的问题做了一下整理,一起来看看java异步调用的方法吧! 1.利用Spring的异步方法去执行 注:没有返回值 在启动类又或者是配置类加 ...

  3. SpringBoot异步调用方法

    SpringBoot异步调用方法 一.spring boot--使用异步请求,提高系统的吞吐量 https://blog.csdn.net/liuchuanhong1/article/details/ ...

  4. 浅谈WebService开发二(同步与异步调用)转

    上文 <http://www.dotnetgeek.cn/xuexiwebservice1.html>已经跟大家说了,如果创建一个webservice和简单的调用,本文将注重webserv ...

  5. 那些年我们一起追逐的多线程(Thread、ThreadPool、委托异步调用、Task/TaskFactory、Parallerl、async和await)

    一. 背景 在刚接触开发的头几年里,说实话,根本不考虑多线程的这个问题,貌似那时候脑子里也有没有多线程的这个概念,所有的业务都是一个线程来处理,不考虑性能问题,当然也没有考虑多线程操作一条记录存在的并 ...

  6. WinForm 异步调用方法

    假如要在一个线程中异步执行一个方法,则先创建一个该方法的委托类型,然后CLR会自动为该委托类型定义一个BeginInvoke方法和EndInvoke方法,我们就靠这两个方法异步调用委托类型指向的方法( ...

  7. 异步调用方法时异常的捕获

    在异步调用一个方法时,由于不在一个线程内,异常的处理不同于普通同步调用,但可以在EndXXX时,使用try{}catch{}来捕获. public static void main(string[]  ...

  8. Boost库实现线程池学习及线程实现的异步调用

    A.Boost线程池实现 参考自: Boost库实现线程池实例 原理:使用boost的thread_group存储多个线程,使用bind方法将要处理的函数转换成线程可调用的函数进行执行:使用队列存储待 ...

  9. python 进程池、线程池 与异步调用、回调机制

    进程池.线程池使用案例 from concurrent.futures import ProcessPoolExecutor # 进程池模块 from concurrent.futures impor ...

最新文章

  1. 用最骚的话让你彻底弄懂贝叶斯!
  2. e1载波把32个信道按_E1载波把32个信道按(11)方式复用在一条2.048Mb/s的高速信道上,每条话音信道的数据速率是(12)。...
  3. 【错误记录】Ubuntu 修改 hosts 文件 ( 使用 gedit /etc/hosts 命令打开并修改 hosts 文件 )
  4. 2017.3.9 对象 函数
  5. Nginx在开发中常用的基础命令
  6. spring mvc工作原理及组件说明
  7. 使用Android Studio向GitHub提交代码
  8. 使用gparted-LiveCD对centos分区调整---virtualbox磁盘调整序2
  9. 根据作用C语言关键字分为,C语言 关键字
  10. Mybatis日常操作遇到的问题
  11. 【绿色版】飞鸽传书2011绿色版
  12. mysql删除unionkey_MySQL索引如何优化?二十条铁则送给你
  13. 那些兼职中你不知道的事
  14. Julia :关于函数返回类型::
  15. 【打卡帖】7日玩转ESP32——(第5日) 通过串口的WiFi 配网
  16. 视频教程-亲自动手写一个深度学习框架-深度学习
  17. 开源框架面试之MyBatis面试题
  18. php博客系统答辩ppt,个人博客系统设计与实现答辩PPT.ppt
  19. ac7315功放音质_常见地功放地噪声及其处理技巧
  20. 无法将void类型转为object类型

热门文章

  1. Silverlight智能表单(3)之XML存储
  2. jenkins自动部署windwos服务器
  3. 数字图像处理-频域滤波-高通/低通滤波
  4. CSS多行文字垂直居中的两种方法
  5. python CGI编程Apache配置
  6. 一个七年程序员的经验
  7. IOS中单例的简单使用
  8. [Effective C++ --032]确定你的public继承塑模出is-a
  9. PHP版本选择讲解:VC6与VC9,Thread Safe与None-Thread Safe等的选择
  10. 函数型F#语言很值得学习