gpt4 book ai didi

c# - 需要在使用 TcpClient 的类上实现终结器?

转载 作者:太空狗 更新时间:2023-10-29 23:04:48 26 4
gpt4 key购买 nike

我有一个使用(作为私有(private)字段)TcpClient 对象的类(比如 MyClass)。 MyClass 实现 IDisposableDispose 方法中调用 TcpClient.Close

我的问题是 MyClass 是否还应该实现一个终结器来调用 Dispose(bool Disposing) 以释放 TcpClient 的 非托管资源,以防 MyClass.Dispose 没有被调用代码调用?

谢谢

最佳答案

不,你不应该。

因为你不应该在终结器中调用其他对象的方法,它可能在你的对象之前被终结。

你的 TcpClient 的终结器将被垃圾收集器调用,所以让他来做吧。

Dispose 中的模式是:

protected virtual void Dispose(bool disposing)
{
if (disposing)
{
// dispose managed resources (here your TcpClient)
}

// dispose your unmanaged resources
// handles etc using static interop methods.
}

关于c# - 需要在使用 TcpClient 的类上实现终结器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/541797/

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