如何确保在.NET中正确处理对象?

Bra*_*rad 7 .net c#

我使用连续运行的C#在.NET 2中创建了一个Windows窗体应用程序.对于大多数帐户我很满意,但据报道,它偶尔会失败.我可以在50%的时间内监控其性能,我从未注意到失败.

在这一点上,我担心程序可能使用了太多资源,并且在不再需要时不会处理资源.

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

另外:有没有办法可以监控应用程序使用的资源?

Pet*_*old 14

最佳做法是确保在不再需要对象时,实现IDisposable接口的所有对象都被称为Dispose on.

这可以使用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
}
Run Code Online (Sandbox Code Playgroud)

关于表单中组件的说明:如果对象实现了IComponent接口,则可以将实例放在表单Container中.当容器本身被丢弃时,容器将负责处理组件.