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

时间:2010-04-17 13:29:38

标签: .net wcf multithreading tcp

使用TCP有一个WCF连接。服务器上的两个线程连续写入此连接。始终保证首先由客户端处理第一条消息吗?根据我的理解,应该保证。

3 个答案:

答案 0 :(得分:2)

'频道'是连续的,所以我认为答案是肯定的。

但是对于2(独立)线程,'first'的含义没有明确定义。

答案 1 :(得分:1)

我认为Henk的问题('第一个'线程的含义)非常有趣。

鉴于线程可以在任何时候挂起,是否有可能线程A可以在线程B之前完成Send()方法的执行,但是线程B是第一个返回用户代码的?

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

答案 2 :(得分:0)

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

对通道的写操作是原子的,并且保证TCP传输有序。正如Henk指出的那样,频道是完全顺序的。它将始终以完全相同的顺序在客户端上发生。