gpt4 book ai didi

c# - TcpClient.Dispose() 是否关闭 TcpClient.GetStream?

转载 作者:行者123 更新时间:2023-11-30 19:56:13 33 4
gpt4 key购买 nike

要关闭 TcpClient,必须关闭流。通常的做法是:

        client.GetStream().Close();
client.Close();

因此仅使用 client.Close() 是不够的,我的问题是 client.Dispose() 是否与 client.GetStream( ).Close() 所以结束会像

        client.Dispose();
client.Close();

这是我通过阅读 TcpClient reference source 了解到的因为 Dispose 方法关闭了流,所以我是正确的还是遗漏了什么?先谢谢你。

最佳答案

Close 调用DisposeDispose 处理流:

IDisposable dataStream = m_DataStream;
if (dataStream != null)
{
dataStream.Dispose();
}

您不需要同时调用 CloseDispose。选择一个。

您可以查看 source code

IDisposable 类通常有另一个方法与 Dispose 做同样的事情,但具有不同的特定于域的名称。 IDisposable.Dispose 通常是显式实现的,因此它可以通过 using 语句或在转换后使用,但不会使类的界面困惑。

关于c# - TcpClient.Dispose() 是否关闭 TcpClient.GetStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34451355/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com