TcpClient.Dispose()是否关闭TcpClient.GetStream
本文关键字:TcpClient GetStream Dispose 是否 | 更新日期: 2023-09-27 18:27:54
要关闭TcpClient,必须关闭流。通常的方法是:
client.GetStream().Close();
client.Close();
所以仅仅使用client.Close()
是不够的,我的问题是client.Dispose()
和client.GetStream().Close()
一样工作吗,所以关闭会像一样
client.Dispose();
client.Close();
这就是我从Dispose
方法关闭流时读取TcpClient引用源时所理解的,那么我是正确的还是遗漏了什么?提前谢谢。
Close
调用Dispose
,Dispose
处理流:
IDisposable dataStream = m_DataStream;
if (dataStream != null)
{
dataStream.Dispose();
}
您不需要同时调用Close
和Dispose
。选择一个。
您可以查看源代码
IDisposable
类通常有另一个与Dispose
相同的方法,但使用不同的、特定于域的名称。IDisposable.Dispose
通常是显式实现的,因此它可以由using
语句使用或在强制转换后使用,但不会扰乱类的接口。
client.Dispose
或
client.Close
做同样的事。一个电话就足够
并且两者都关闭网络流
来自MSDN
调用此方法最终将关闭关联的套接字,并且还将关闭用于发送和接收数据的关联NetworkStream(如果已创建)。