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. icePDF去水印方法

    原文:http://www.cnblogs.com/pcheng/p/5711660.html 1.首先下载到icepdf的架包. 2.用解压缩软件,对该jar文件进行解压,得到名为icepdf-co ...

  2. 在SQL SERVER中根据某字段分隔符将记录分成多条记录

    XT_RSGL_KQSZ_LS表结构如下图: CREATE TABLE  XT_RSGL_KQSZ_LS( KQFW VARCHAR(400) ) 其中KQFW字段以分割符 , 隔开 INSERT I ...

  3. 【ORM】--FluentNHibernate之基本映射详解

           最近在做项目的时候用到了NHibernate,使用它并不困难,但是很麻烦.如果我的数据库有几百张表如果想要一个个的映射岂不是很麻烦,所以这种情况下使用NHibernate就会很笨重,虽然 ...

  4. index()、e.target.value、on()与快捷处理的区别、

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. ArcGIS api fo silverlight学习三(利用ElementLayer实现鼠标悬浮弹出自定义窗体)

    接着上一节继续学习,本节主要是利用ElementLayer实现鼠标悬浮弹出自定义窗体 参考博文:http://www.cnblogs.com/luxiaoxun/p/3322218.html 一.新建 ...

  6. 实数---Currency讲解

      Currency 实际上是 Int64 的变体,Int64/10000 就是实际的值 

  7. CentOS平台部署vsftp(基于虚拟用户)

    1. 安装FTP 1 2 [root@task ~]# yum install vsftpd –y [root@task ~]# chkconfig vsftpd on          # 配置开机 ...

  8. SQL 高效分页查询

    declare @page int --页码 declare @pagecount int;--每一页显示的记录数 select * from (select *,row_number() over( ...

  9. 9.5.8 Optimizing InnoDB Disk I/O

    如果你数据库设计以及sq操作都是最佳实践,但是你数据库仍然被较重的io活动拖累的较慢,那么试一试看看top或者windows的任务管理器,cpu使用率和工作量低于70%,那么或许是您的硬盘较慢. 1 ...

  10. MySQL for Visual Studio Version

    MySQL for Visual Studio Version Connector/Net Version Supported Visual Studio Version Supported MySQ ...