gpt4 book ai didi

c# - 我如何确保在 .NET 中正确处理对象?

转载 作者:太空狗 更新时间:2023-10-29 19:51:25 24 4
gpt4 key购买 nike

我创建了一个 Windows Forms .NET 2 中使用连续运行的 C# 的应用程序。对于大多数账户,我对此感到满意,但据我所知,它偶尔会失败。我能够在 50% 的时间内监控其性能,而且我从未发现过故障。

此时我担心程序可能使用了太多资源并且在不再需要时没有处理资源。

正确处置已创建计时器和图形对象(如图形路径、SQL 连接等)的已创建对象的最佳做法是什么?或者我可以依靠 dispose 方法来处理所有垃圾回收吗?

还有:有什么方法可以监控应用程序使用的资源吗?

最佳答案

最佳实践是确保所有对象都实现了 IDisposable一旦不再需要该对象,就会立即调用 Dispose 接口(interface)。

这可以通过 using 来完成关键字或 try/finally构造。

在为窗体的生命周期分配资源的 WinForms 窗体中,需要一种稍微不同的方法。由于表单本身实现了 IDisposable,这表明在某个时间点将在此表单上调用 Dispose。您希望确保同时处理您的一次性资源。为此,您应该覆盖表单 Dispose(bool disposing)方法。实现应如下所示:

protected override void Dispose(bool disposing)
{
if (disposing)
{
// dispose managed resources here
}
// dispose unmanaged resources here
}

关于表单中组件的注释:如果您的对象实现了 IComponent界面,您可以将实例放在表格中 Container .当容器本身被处置时,容器将负责处置组件。

关于c# - 我如何确保在 .NET 中正确处理对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/814821/

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