我创建了一个Windows 窗体 http://en.wikipedia.org/wiki/Windows_Forms.NET 2 中使用连续运行的 C# 的应用程序。对于大多数帐户,我对此感到满意,但有人向我报告,它偶尔会失败。我能够在 50% 的时间内监控其性能,并且从未注意到任何故障。
此时,我担心该程序可能使用了太多资源,并且在不再需要资源时没有对其进行处置。
正确处置已创建计时器和图形对象(如图形路径、SQL 连接等)的创建对象的最佳实践是什么?或者我可以依靠 dispose 方法来处理所有垃圾收集吗?
还:
有没有办法可以监控应用程序使用的资源?
最佳实践是确保所有对象实现I一次性 http://msdn.microsoft.com/en-us/library/system.idisposable.aspx一旦不再需要该对象,就会调用 Dispose 接口。
这可以通过以下方式完成using http://msdn.microsoft.com/en-us/library/yh598w02.aspx关键字或尝试/最后 http://msdn.microsoft.com/en-us/library/zwc8s4fz.aspx结构体。
在为表单的生命周期分配了资源的 WinForms 表单中,需要采用稍微不同的方法。由于表单本身实现了 IDisposable,这表明在某个时间点将在此表单上调用 Dispose。您希望确保同时处置您的可支配资源。为此,您应该覆盖表单处置(布尔处置) http://msdn.microsoft.com/en-us/library/a4zkb31d.aspx方法。实现应该是这样的:
protected override void Dispose(bool disposing)
{
if (disposing)
{
// dispose managed resources here
}
// dispose unmanaged resources here
}
关于表单中的组件的注释:如果您的对象实现了组件 http://msdn.microsoft.com/en-us/library/system.componentmodel.icomponent.aspx界面,您可以将实例放置在表单中容器 http://msdn.microsoft.com/en-us/library/system.componentmodel.component.container.aspx。当容器本身被丢弃时,容器将负责处理组件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)