如何正确地为具有TcpClient和SslStream对象的类编写Dispose和Disconnect函数
本文关键字:函数 Disconnect Dispose 对象 SslStream 正确地 TcpClient | 更新日期: 2023-09-27 18:16:23
如何正确地为具有TcpClient
和SslStream
对象的类编写Dispose和Disconnect函数?
我应该这样做吗
protected virtual void Dispose(bool disposing)
{
// release unmanaged memory
if (disposing)
{
// release other disposable objects
if (_sslStream != null)
{
_sslStream.Dispose();
_sslStream = null;
}
if (_tcpClient != null)
{
_tcpClient.Close();
_tcpClient = null;
}
}
}
或像这样的
public void Disconnect()
{
_tcpClient.Client.Shutdown(SocketShutdown.Both);
_tcpClient.Client.Disconnect(false);
_tcpClient.GetStream().Close();
_tcpClient.Close();
}
在TcpClient
类中有很多方法可以断开连接和关闭操作,但我不知道我应该更喜欢添加通过相同对象重新连接到服务器的能力。
Dispose
看起来不错。
在Disconnect
中我也会做一个Dispose
和
- 后面跟着再生成
- 或在下次使用时重新创建