首先,我很抱歉,我在问这个完全模棱两可的问题。我遇到了一个非常令人困惑的问题,我不知道如何解决。
这里甚至不可能编写一些示例代码,因为它与我的应用程序整体相关。我试着解释一下。
我有两个Canvas
个对象:
我在我的应用程序中使用它来绘制Line
个对象。我还有两个Button
个对象,用于在Canvas A
和Canvas 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
绘制线条。