1. delegate void textAsy();
  2. static void Main(string[] args)
  3. {
  4.  
  5. textAsy t = texts;
  6. AsyncCallback callBack = new AsyncCallback(sendCallBack);
  7. t.BeginInvoke(callBack, new { timeNow= DateTime.Now.Ticks,timeStr=DateTime.Now.ToString() });
  8. Console.WriteLine(DateTime.Now);
  9. Console.Read();
  10. }
  11. public static void texts()
  12. {
  13. Thread.Sleep(1100);
  14. Console.WriteLine(DateTime.Now);
  15. }
  16.  
  17. //3)在回调函数中使用StateObject
  18. private static void sendCallBack(IAsyncResult ar)
  19. {
  20.  
  21. Console.WriteLine("异步状态" + ((dynamic)ar.AsyncState).timeNow + ((dynamic)ar.AsyncState).timeStr);
  22. }

  

  1. 由于操作是异步的 我们不知道他什么时候完成 所以一般采用回调函数处理  
  1. delegate void textAsy();
  2. static void Main(string[] args)
  3. {
  4.  
  5. textAsy t = texts;
  6. AsyncCallback callBack = new AsyncCallback(sendCallBack);
  7. t.BeginInvoke(callBack,DateTime.Now.Ticks);
  8. Console.WriteLine(DateTime.Now);
  9. Console.Read();
  10. }
  11. public static void texts()
  12. {
  13. Thread.Sleep(1100);
  14. Console.WriteLine(DateTime.Now);
  15. }
  16.  
  17. //3)在回调函数中使用StateObject
  18. private static void sendCallBack(IAsyncResult ar)
  19. {
  20.  
  21. Console.WriteLine("异步状态"+(long)ar.AsyncState);
  22. }

  

  

  1. ar.AsyncState 就是 t.BeginInvoke(callBack,DateTime.Now.Ticks);中的参数
  1. delegate void textAsy();
  2. static void Main(string[] args)
  3. {
  4.  
  5. textAsy t = texts;
  6. AsyncCallback callBack = new AsyncCallback(sendCallBack);
  7. t.BeginInvoke(callBack, new { timeNow= DateTime.Now.Ticks,timeStr=DateTime.Now.ToString() });
  8. Console.WriteLine(DateTime.Now);
  9. Console.Read();
  10. }
  11. public static void texts()
  12. {
  13. Thread.Sleep(1100);
  14. Console.WriteLine(DateTime.Now);
  15. }
  16.  
  17. //3)在回调函数中使用StateObject
  18. private static void sendCallBack(IAsyncResult ar)
  19. {
  20.  
  21. Console.WriteLine("异步状态" + ((dynamic)ar.AsyncState).timeNow + ((dynamic)ar.AsyncState).timeStr);
  22. }

  

C#实现简单的委托异步调用的更多相关文章

  1. c# 异步调用简单例子(转载)

    首先来看一个简单的例子: 小明在烧水,等水烧开以后,将开水灌入热水瓶,然后开始整理家务 小文在烧水,在烧水的过程中整理家务,等水烧开以后,放下手中的家务活,将开水灌入热水瓶,然后继续整理家务 这也是日 ...

  2. c#异步调用

    首先来看一个简单的例子: 小明在烧水,等水烧开以后,将开水灌入热水瓶,然后开始整理家务 小文在烧水,在烧水的过程中整理家务,等水烧开以后,放下手中的家务活,将开水灌入热水瓶,然后继续整理家务 这也是日 ...

  3. C#基础:异步调用 【转】

    首先来看一个简单的例子: 小明在烧水,等水烧开以后,将开水灌入热水瓶,然后开始整理家务 小文在烧水,在烧水的过程中整理家务,等水烧开以后,放下手中的家务活,将开水灌入热水瓶,然后继续整理家务 这也是日 ...

  4. 一个简单的webservice的demo(下)winform异步调用webservice

    绕了一大圈,又开始接触winform的项目来了,虽然很小吧.写一个winform的异步调用webservice的demo,还是简单的. 一个简单的Webservice的demo,简单模拟服务 一个简单 ...

  5. 循序渐进做项目系列(2):最简单的C/S程序——消息异步调用与消息同步调用

    上篇博客 循序渐进做项目系列(1):最简单的C/S程序——让服务器来做加法 实现了一个最简单的C/S程序,即让服务器来做加法.当时为了通俗易懂采用了消息异步调用的方式.今天我们要采用消息同步调用的方式 ...

  6. 使用Promise解决多层异步调用的简单学习【转】

    前言 本文章转载文章: https://www.jianshu.com/p/29da9aef4c1c 第一次接触到Promise这个东西,是2012年微软发布Windows8操作系统后抱着作死好奇的心 ...

  7. Prism for WPF 搭建一个简单的模块化开发框架(四)异步调用WCF服务、WCF消息头添加安全验证Token

    原文:Prism for WPF 搭建一个简单的模块化开发框架(四)异步调用WCF服务.WCF消息头添加安全验证Token 为什么选择wcf?   因为好像wcf和wpf就是哥俩,,, 为什么选择异步 ...

  8. 委托(delegate)的三种调用方式:同步调用,异步调用,异步回调(转载)

    下面为即将被调用的方法: public delegate int AddHandler(int a,int b); public class 加法类 { public static int Add(i ...

  9. c# 多线程与异步调用

    异步操作的本质 在方法调用前为异步方法指定一个回调函数,方法调用后被线程池中的一个线程接管,执行该方法.主线程立即返回,继续执行其他工作或响应用户请求.如果异步方法执行完 毕,回调函数被自动执行,以处 ...

随机推荐

  1. Spring对 JDBC 的支持,JdbcTemplate类的使用

    导包:spring框架的包 和 连接数据库连接池的c3p0包 连接mysql数据库的包; 在src目录下建立jdbc.properties文件:存放连接数据库的属性值 jdbc.user=root j ...

  2. 进击的docker 一 : Docker 简介

    Docker简介 1.什么是docker 1.1.docker 起源 开源项目 诞生2013年初 GO语言开发实现 遵从了Apache2.0协议 项目代码在GitHub维护 1.2.docker目标 ...

  3. 我刚知道的WAP app中meta的属性

    之前我一直做的都是WEB前端开发,来北京以后面试了一个移动前端开发,WAP前端开发. 其实在原来公司的时候也做过这方面的开发,可面试的时候面试官问我,要想强制让文档与设备的宽度保持1:1,mate标签 ...

  4. 前端mvc框架backbone.js入门[转]

    原文地址:http://www.cnblogs.com/zhjh256/p/6083618.html 关于backbone.js的优缺点,这里就不详谈了,网上关于这方面的讨论很多了,而且各种框架之所以 ...

  5. Take advantage of “Integrated Calling” to know whom suspect talked to

    A new feature in iOS 10 is "Integrated Calling". An integrated call from Chat App like Nav ...

  6. sql prompt 安装使用教程

    sql prompt:和vs的自动提示一样 数据库:2008r2 下载地址:http://download.csdn.net/detail/wozengcong/9048381 安装教程:http:/ ...

  7. Spark Streaming消费Kafka Direct方式数据零丢失实现

    使用场景 Spark Streaming实时消费kafka数据的时候,程序停止或者Kafka节点挂掉会导致数据丢失,Spark Streaming也没有设置CheckPoint(据说比较鸡肋,虽然可以 ...

  8. lnmp

    参照http://www.osyunwei.com/archives/8867.html,略有改动 一 .系统约定 软件源代码包存放位置:/usr/local/src 源码包编译安装位置:/usr/l ...

  9. Windows 10设置桌面图标间距、窗口的背景颜色、选中文字的背景颜色

    Windows 10取消了“高级外观设置”(或者叫“窗口颜色和外观”设置),想调整一些参数只能进注册表了. 修改后可能需要注销或重启才能生效. 按Win+R,然后输入regedit进入注册表编辑器. ...

  10. python 获取一个列表有多少连续列表

    python 获取一个列表有多少连续列表 例如 有列表 [1,2,3] 那么连续列表就是 [1,2],[2,3],[1,2,3] 程序实现如下: 运行结果: