【发布时间】:2012-10-26 20:23:06
【问题描述】:
我在 stackoverflow 上阅读了很多关于 TcpClient 和多线程的内容,但我认为我没有找到明确的答案。
我有一个包含 3 个相同线程的应用程序。 (在每个线程对象上调用相同的方法)
每个线程都创建自己的(本地)TcpClient 实例并打开到其服务器的 tcp 连接(不同的 IP 地址)。
线程应该只在不同的服务器上做同样的事情。 3 台服务器机器运行相同的服务器软件。
现在 3 个线程“同时”启动服务器请求。
TcpClient 对象是否在每个线程上完全隔离? 或者可能是底层流被不情愿地共享?
我感觉有时线程会获取不是来自“他的”服务器的数据。 例如,所有线程都在轮询“就绪”标志。 只有服务器 1 准备就绪并设置了标志,但线程 1 和线程 2 看到了设置的标志。
很有可能我做错了。 但肯定知道以这种方式在 TcpClient 对象上进行通信是安全的。
非常感谢您的任何建议, 拉尔夫
PS:是的,我目前正在阅读有关 C# 8-) 中的多线程的书籍和文档
【问题讨论】:
-
您到底尝试了什么?我真的没有看到一个问题,我看到的是“这是真的吗?”问题,但除非您向我们提供更多信息,否则我们无法回答此类问题。除了看不懂题还有大量的语法和拼写错误,这道题需要做一些工作,需要作者自己做的工作,在附加信息贴出来的时候。
-
@all: 对不起我的英语不好
标签: c# multithreading tcpclient