如何在c#winform应用程序GLOBALLY中处置未使用的资源?
答案 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