我在 stackoverflow 上阅读了很多关于 TcpClient 和多线程的内容,但我认为我没有找到明确的答案。
我有一个具有 3 个相同线程的应用程序。(在每个线程对象上调用相同的方法)
每个线程都创建自己的(本地)TcpClient 实例并打开到其服务器的 tcp 连接(不同的 IP 地址)。
线程应该只在不同的服务器上做同样的事情。3 台服务器机器运行相同的服务器软件。
现在 3 个线程“同时”启动服务器请求。
TcpClient 对象是否在每个线程上完全隔离?或者可能是底层流被不情愿地共享?
我感觉有时一个线程会获取不是来自“他的”服务器的数据。例如,所有线程都在轮询“就绪”标志。只有服务器 1 准备好并设置了标志,但线程 1 和线程 2 看到了设置的标志。
很有可能我做错了。但是肯定知道以这种方式在 TcpClient 对象上进行通信是安全的会有所帮助。
非常感谢您的任何建议,拉尔夫
PS:是的,我目前正在阅读有关 C# 8 中的多线程的书籍和文档-))