我这样分个类: WCF中, 以同步、异步角度考虑通讯的方式分为四种:跨进程同步、跨进程异步、发送队列端同步、发送队列端异步。之所以造成这样的结果源于两个因素,一个是传统概念上的同异步,一个是对于WCF方法自定义属性OperationContract中IsOneWay是True还是False的选择。
    记住下面的结论:
    1:IsOneWay配置为False

当一个WCF服务方法IsOneWay配置为False时,当你用同步方法调用它时,他就是“跨进程同步”的,你的当前线程最终会被设置为等待,直到对方执行完毕或者抛出异常,将执行完的信息返回调用端后,你的当前线程才能被恢复,从而继续执行,对应的异步方法是与他的同步方法对应的,这不用多说。

2:IsOneWay配置为True

当一个WCF服务方法IsOneWay配置为True时(注意:只能设置在没有返回值的方法上),当你用同步方法调用它时,它就是“发送队列端同步”的,你的当前线程同样最终会被设置为等待,但只要能在一定的时间内和对方正确连接上,并将方法参数无误的发过去,你的当前线程便会恢复执行,而不需等待对方任何执行结果(什么结果?执行完毕或者异常信息),同样,“发送队列端异步”也是与之对应的,这也不用多说。”
    例子代码我实在没时间写了,希望对此感兴趣的自己去建个例子,自己试验试验。WCF虽然上手容易,不过涉及的东西其实很多,在实际开发的时候你会时不时遇到各种“意想不到”的意外,所以平时就关注一些细节问题显得很重要。

ps:现在不知道这个等待是可以等待多久来返回值,期间是否一直需要连接?

最新文章

  1. WCF学习系列汇总
  2. Target-Action回调模式
  3. weback学习笔记
  4. 使用FEST-Swing测试GUI
  5. 阶乘之和 & 程序运行时间 & 算法分析
  6. cocos2dx 搭建 android 平台
  7. Android之开源项目view篇
  8. 如何利用python使用libsvm
  9. TigerLeapMC V1.3 for Windows(支持DLNA)
  10. 移动App设计之分层架构+MVC
  11. 面试时如何优雅的谈论OC
  12. python第一步
  13. linux 安装jdk-7u45-linux-x64.tar.gz
  14. 分析Array.apply(null, { length: 5 })
  15. React Native学习(八)—— 对接七鱼客服
  16. [leetcode] 5.Longest Palindromic Substring-2
  17. sonar之阿里巴巴java规则(p3c)
  18. python学习第2天
  19. spring boot扫描mapper文件
  20. Linux 里的 2>&1含义

热门文章

  1. spring boot 学习(六)spring boot 各版本中使用 log4j2 记录日志
  2. SQL Server 对比数据库差异
  3. W1002 Symbol 'Create' is specific to a platform
  4. 深入理解Linux网络技术内幕——PCI层和网络接口卡
  5. ACCESS修改密码,更新显示
  6. [转]数据库更新(Update语句)查询
  7. [leetcode] 230. Kth Smallest Element in a BST 找出二叉搜索树中的第k小的元素
  8. 第八章 Redis数据库结构与读写原理
  9. 空格填充器(alignBySpace)
  10. c++ json 详解