添加引用时生成勾选允许生成异步操作”

Wcf异步调用三种方式:

第一种:直接调用异步方法

var serviceClient = new MyServiceClient();

serviceClient.MessageAsync();

erviceClient.Close();

第二种:Begin、End方式

serviceClient.BeginMessage(delegate(IAsyncResult asyncResult)

{

serviceClient.EndMessage(asyncResult);

serviceClient.Close();

}, null);

第三种:通过注册事件的方式

serviceClient.MessageCompleted += delegate(object sender, PushBatchMessageCompletedEventArgs e)

{

if (serviceClient != null)

{

serviceClient.Close();

}

};

serviceClient.MessageAsync();

通过实验,前2种方式在调用Close()方法时程序会停留等待服务器端执行完成才能往下继续执行,而第3种通过注册事件的方案不需要等待。

最新文章

  1. MathType中如何批量修改公式字体和大小
  2. MVC模式--DropDownList数据绑定
  3. (转载)自定义 setDateFormat 显示格式
  4. xll
  5. (转载)MS SQL Server 未公开的加密函数有哪些?
  6. 【STL源码学习】细品vector
  7. 【44】将与参数无关的代码抽离templates
  8. 前端判断用户请求是PC还是移动端
  9. 【BZOJ3450】【Tyvj1952】Easy 可能DP
  10. itoa()函数和atoi()函数
  11. ERROR Worker: All masters are unresponsive! Giving up
  12. Ali RocketMQ与Kafka对照
  13. MySQL完整教程(共8章)
  14. C语言那年踩过的坑--局部变量,静态变量,全局变量在内存中存放的位置
  15. Velocity日期格式化
  16. freeswitch 获取当前网关通道数
  17. 第14月第11天 linkmap
  18. MongoDB 进程控制系列二:结束进程
  19. 使用LVS实现负载均衡原理及安装配置详解(转)
  20. linux下日语语言包安装

热门文章

  1. Python基础(1)--Python编程习惯与特点
  2. iOS开发之网络数据解析--中文输出
  3. Monyer's Game 11~15关过关方法
  4. 一步步学敏捷开发:6、Scrum的3种工件
  5. 《HeadFirst设计模式》读后感——对学习设计模式的一些想法
  6. Windows 系统下json 格式的日志文件发送到elasticsearch
  7. c#的序列化与反序列化
  8. C++ enum
  9. Hive2 jdbc test
  10. Hadoop 1.0 和 2.0 中的数据处理框架 - MapReduce