1

我正在对一个巨大的 WPF 应用程序进行维护。应用程序存在一个问题,它会消耗大量内存,并且消耗会随着时间的推移而增加。我在网上搜索了很多,但我没有找到最好的解决方案。我尝试过很多程序,它们只让我知道发生泄漏的类,但没有人提供防止它的解决方案。

我有以下问题请教专家:

  1. 我们可以一次性处理所有未处理的对象吗?
  2. 解决此问题的最佳方法是什么?
4

2 回答 2

1

您使用的任何软件都将帮助您识别问题类别,而不是提供预防或解决问题的解决方案。

好吧,要一次处理所有对象,您需要在该特定时间引用对象。我认为这不切实际。

更好的解决方案是确定没有得到妥善处理的问题类别和资源,然后,正如丹麦人所说,IDisposable interface为它们实施。然后,您可以在使用结束后显式处置这些对象。

此外,您可以考虑对'using'这些对象使用该语句来反对处置它们,因为这会减少您显式处置这些对象的痛苦,并且还会导致及时处置。

using statement 您可以在此处此处阅读有关使用的更多信息

于 2012-09-05T07:06:13.720 回答
-2

您将需要检查那些对象内存不足的类的代码。然后,在这些类中实现 IDisposable 接口。接下来,确保为这些类创建的对象在使用后被丢弃。

恕我直言,简单但不正确,对您的第一个问题的回答将是使用 GC 类中的静态方法。但请注意,GC 会在所有 .Net 应用程序中产生,而不仅仅是您的。

于 2012-09-05T06:02:04.823 回答