首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TcpClient.Dispose()是否关闭TcpClient.GetStream?

TcpClient.Dispose()是否关闭TcpClient.GetStream?
EN

Stack Overflow用户
提问于 2015-12-24 10:31:03
回答 2查看 10.5K关注 0票数 5

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

代码语言:javascript
复制
        client.GetStream().Close();
        client.Close();

因此,仅使用client.Close()本身是不够的,我的问题是,client.Dispose()是否与client.GetStream().Close()一样工作,因此结束操作将类似于

代码语言:javascript
复制
        client.Dispose();
        client.Close();

TcpClient参考源方法关闭流时,我通过阅读Dispose理解了这一点,所以我是正确的还是遗漏了什么?谢谢你的进阶。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-24 10:35:14

Close调用DisposeDispose处理流:

代码语言:javascript
复制
IDisposable dataStream = m_DataStream;
if (dataStream != null)
{
    dataStream.Dispose();
}

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

您可以检查源代码

IDisposable类使用与Dispose相同的另一种方法,但使用不同的特定于域的名称,这是很常见的。IDisposable.Dispose通常是显式实现的,因此它可以由using语句使用,也可以在转换之后使用,但不会干扰类的接口。

票数 11
EN

Stack Overflow用户

发布于 2015-12-24 10:35:08

代码语言:javascript
复制
client.Dispose

代码语言:javascript
复制
client.Close 

做同样的事。一个电话就够了

并且都关闭了网络流

来自MSDN

调用此方法最终将导致关联套接字的关闭,还将关闭用于发送和接收数据的关联NetworkStream (如果创建的话)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34451355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档