代码之家  ›  专栏  ›  技术社区  ›  mafu

多个发送线程是否保证了WCF TCP消息的正确顺序?

  •  3
  • mafu  · 技术社区  · 14 年前

    有一个使用TCP的WCF连接。服务器上的两个线程连续地写入此连接。是否总是保证客户机首先处理第一条消息?根据我的理解,这应该得到保证。

    3 回复  |  直到 14 年前
        1
  •  2
  •   Henk Holterman    14 年前

    “频道”是连续的,所以我认为这里的答案是肯定的。

    但是对于2个(独立的)线程,“First”的含义没有很好的定义。

        2
  •  1
  •   Matt    14 年前

    我认为亨克的问题(第一条线是什么意思)非常有趣。

    假设线程可以在任何时候挂起,那么线程A是否可以在线程B之前完成send()方法的执行,但线程B是第一个返回用户代码的线程?

    从调用者的角度来看,线程B似乎首先完成了发送。

        3
  •  0
  •   mafu    14 年前

    我想了更多,我相信这个问题很愚蠢。为什么WCF应该关心哪个线程写入通道?

    对通道的写操作是原子的,并且保证TCP传输是有序的。正如亨克指出的,这个频道是完全连续的。它总是以完全相同的顺序在客户机上发生。