在c#winform应用程序GLOBALLY中处理未使用的资源

时间:2009-09-02 09:28:31

标签: c#

如何在c#winform应用程序GLOBALLY中处置未使用的资源?

3 个答案:

答案 0 :(得分:5)

终止流程

答案 1 :(得分:2)

好吧,你可以强制进行垃圾收集(GC.Collect)*,但这与Dispose()不一样 - 当然,如果你的代码可以看到它(处理它),它无法收集。所以引入额外的模型来跟踪它们可能会适得其反。

我建议您确保正确使用using块,并确保您的代码知道“拥有”IDisposable资源的内容。使用笔/画笔等会有点棘手,因为系统画笔(等)需要与您自己的自定义画笔区别对待。

* =正如米奇所说,这很少是正确的做法;我通常只使用测试平台中的GC.Collect来平衡测试周期之间的事情......而不是在生产代码中。

答案 2 :(得分:1)

您可以执行以下操作强制进行垃圾回收:

GC.Collect();
GC.WaitForPendingFinalizers()

这假设您遵循IDisposable模式。 Codeproject有一个detailed article on the IDisposable pattern