我只需要关心它的流,就必须存储一个TcpClient吗?

TcpClient的新实例连接到远程主机.检索并存储其NetworkStream.我是否还必须存储TcpClient本身,以确保它不会被垃圾收集?

万一您要回答“您必须存储它才能处置它”:
在我的特定情况下,TcpClient通常寿命很长(应用程序生命周期),因此处置它并不是必须的.但是,我同意,通常必须将其存储起来才能调用Dispose.

解决方法:

如果仍被引用,则不会删除NetworkStream.垃圾收集器仅清除不再引用的对象-它对要收集的对象一无所知,它只跟踪引用.

但是,您可能会发现TcpClient具有终结器,如果已收集TcpClient,终结器将使流无效.保留对TcpClient的引用也可能更安全. (据我从源代码中看到的,终结器当前未执行此操作,但不能保证将来不会.)

上一篇:利用TcpClient,简单的tcp消息收发


下一篇:Matlab - TCP/IP通讯