c#中的内存泄漏或其他问题

时间:2014-05-08 08:04:26

标签: c# wpf canvas memory-leaks

首先,我很抱歉,我在问这个完全模棱两可的问题。我遇到了一个非常令人困惑的问题,我不知道如何解决。

这里甚至不可能编写一些示例代码,因为它与我的应用程序整体相关。我试着解释一下。

我有两个Canvas个对象:

  • Canvas A
  • 画布B

我在我的应用程序中使用它来绘制Line个对象。我还有两个Button个对象,用于在Canvas ACanvas B之间切换。

现在当我切换到Canvas A时,我开始使用Canvas A,我清除Canvas B中的所有孩子,当我切换到Canvas B时,我开始使用Canvas B {1}}我清除Canvas A的孩子。

在这两幅画布之间经过一段时间来回,我的节目变得非常慢。我尝试了 Ant Profiler 并获取了内存快照。一旦我启动程序,一旦我觉得它变慢了。

大小差异大约为135 KB。这是内存泄漏吗? 135 KB似乎不是那么多?还有什么可以导致这个问题?

我切换驻留时每次绘制的Line对象并在内存中聚合,尽管我清除了画布的子项?由于Line对象的数量很高,如果它们每次驻留和聚合,可能会导致问题。我怎么能确定?

真的很感激任何建议。

更新

当我切换到CanvasB时,这是我用来清理CanvasA的代码:

CanvasA.Children.Clear();

我使用DrawingVisual绘制线条。

0 个答案:

没有答案