delegate void textAsy();
static void Main(string[] args)
{ textAsy t = texts;
AsyncCallback callBack = new AsyncCallback(sendCallBack);
t.BeginInvoke(callBack, new { timeNow= DateTime.Now.Ticks,timeStr=DateTime.Now.ToString() });
Console.WriteLine(DateTime.Now);
Console.Read();
}
public static void texts()
{
Thread.Sleep(1100);
Console.WriteLine(DateTime.Now);
} //3)在回调函数中使用StateObject
private static void sendCallBack(IAsyncResult ar)
{ Console.WriteLine("异步状态" + ((dynamic)ar.AsyncState).timeNow + ((dynamic)ar.AsyncState).timeStr);
}

  

由于操作是异步的 我们不知道他什么时候完成 所以一般采用回调函数处理  
 delegate void textAsy();
static void Main(string[] args)
{ textAsy t = texts;
AsyncCallback callBack = new AsyncCallback(sendCallBack);
t.BeginInvoke(callBack,DateTime.Now.Ticks);
Console.WriteLine(DateTime.Now);
Console.Read();
}
public static void texts()
{
Thread.Sleep(1100);
Console.WriteLine(DateTime.Now);
} //3)在回调函数中使用StateObject
private static void sendCallBack(IAsyncResult ar)
{ Console.WriteLine("异步状态"+(long)ar.AsyncState);
}

  

  

ar.AsyncState 就是 t.BeginInvoke(callBack,DateTime.Now.Ticks);中的参数
 delegate void textAsy();
static void Main(string[] args)
{ textAsy t = texts;
AsyncCallback callBack = new AsyncCallback(sendCallBack);
t.BeginInvoke(callBack, new { timeNow= DateTime.Now.Ticks,timeStr=DateTime.Now.ToString() });
Console.WriteLine(DateTime.Now);
Console.Read();
}
public static void texts()
{
Thread.Sleep(1100);
Console.WriteLine(DateTime.Now);
} //3)在回调函数中使用StateObject
private static void sendCallBack(IAsyncResult ar)
{ Console.WriteLine("异步状态" + ((dynamic)ar.AsyncState).timeNow + ((dynamic)ar.AsyncState).timeStr);
}

  

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. 再见OI

    NOIP2016终章 自己弱还脑残加手残 再见OI 你好高考 你好明天 "没有泪水的日子会轻松很多 但我的心还是会痛" ------------------------------ ...

  2. WebViewJavascriptBridge详细使用(转载)

    WebViewJavascriptBridge是支持到iOS6之前的版本的,用于支持native的iOS与javascript交互.如果需要支持到iOS6之前的app,使用它是很不错的.本篇讲讲Web ...

  3. 使用 Wireshark 调试 HTTP/2 流量

    https://imququ.com/post/http2-traffic-in-wireshark.html

  4. Mysql 第一天

    数据库课程体系 在PHP阶段,将数据库分为三个阶段: 基础阶段(就业班第一个阶段): 6天, mysql数据库的基本操作(增删改查), 以及一些高级操作(视图, 触发器,函数,存储过程等), 和PHP ...

  5. Android四大组件及activity的四大启动模式

    Android四大组件 1. 广播接收者的两种类型: (1)系统广播接收者,就是继承BroadcastReceiver这个类,然后还要在清单文件中注册,注册之后给他一个action.当系统发生了这个a ...

  6. top命令如何列出所有进程

    今天在工作中遇到一个问题,想通过top命令来查看系统内所有进程,上网找到了办法记录下来. 命令:top -bn1

  7. python目录操作shutil

    #coding:utf-8 import os import shutil #将aaa.txt的内容复制到bbb.txt shutil.copy('aaa.txt','bbb.txt') #将aaa. ...

  8. Android框架中的广播机制

    一.广播通过Intent发送出去 // 定义广播的意图过滤器 private String action = "com.xxx.demo.Broadcast.STATUS_CHANGED&q ...

  9. TestLink安装及整合Jira

    TestLink安装及整合Jira 1.Testlink 安装部署 Testlink是一个开源的测试管理工具,主要用于管理测试用例,从测试需求.测试计划.测试用例管理和用例执行,到最后的结果分析,一套 ...

  10. [Tomcat 源码分析系列] (二) : Tomcat 启动脚本-catalina.bat

    概述 Tomcat 的三个最重要的启动脚本: startup.bat catalina.bat setclasspath.bat 上一篇咱们分析了 startup.bat 脚本 这一篇咱们来分析 ca ...