gpt4 book ai didi

c# - 未调用终结器

转载 作者:太空狗 更新时间:2023-10-29 23:59:18 25 4
gpt4 key购买 nike

我有一个 C# 类,我想在处理我的类时正确关闭一些通信端口。但是,当我退出程序时,永远不会调用终结器。这是为什么?我做错了什么吗?

我正在手动调用 dispose 来完成并关闭所有通信。这也不会被触发。

这是我正在使用的终结器:

~Power()
{
Dispose(false);
}

最佳答案

终结器(也就是您在此处使用的)仅在终结阶段调用,这将在 GC 期间发生。

如果您正确实现了 IDisposable,则永远不会调用它。我在 my series on IDisposable 上对此进行了详细介绍.

也就是说,如果您的“通信端口”是通过托管类处理的,那么您根本不应该使用终结器。这增加了对您没有任何帮助的开销。只需(正确地)实现 IDisposable,并在需要时让端口类周围的托管包装器处理终结。

关于c# - 未调用终结器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5200848/

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