• 转 WCF中同步和异步通讯总结


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

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

        2:IsOneWay配置为True

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

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

  • 相关阅读:
    GNSS学习笔记-观测量模型和定位定速方程
    矩阵学习-基本矩阵分类
    矩阵学习-QR分解和最小二乘问题求解
    ARM 处理器 MIPS/DMIPS/MFLOPS 理解
    GNSS学习笔记-信号频率分配表
    左移右移为负数的情况
    GNSS学习笔记-坐标转换
    GCC预编译宏查看
    Windows Store无法联网时安装WSL
    Virtual box中Ubuntu虚拟机磁盘碎片整理和空间清理方法
  • 原文地址:https://www.cnblogs.com/fej121/p/3527679.html
Copyright © 2020-2023  润新知