【发布时间】:2012-04-26 03:46:47
【问题描述】:
考虑Socket.BeginSend() 方法。如果两个线程池线程同时调用此方法,它们各自的消息最终会相互混合还是套接字类阻止了这种情况发生?
【问题讨论】:
-
虽然它可以工作,但您应该只使用不可靠的基于排序数据报的协议,如 UDP。原因是如果两个线程竞相调用 BeginSend,您可能会在源头发送乱序。这将导致使用 TCP 时应用程序数据损坏。
标签: c# sockets asynchronous io thread-safety