gpt4 book ai didi

WPF 用户控件内存泄漏

转载 作者:行者123 更新时间:2023-12-02 00:39:13 25 4
gpt4 key购买 nike

我在一个应用程序中有一个 UserControl,我不断地用其他 UIElement 交换 Content 属性。

但是我在任务管理器中注意到,一段时间后内存在多次交换后上升。

使用 AntProfiler 时,出于某种原因,我注意到 UserControl 引用了 ToolBarAutomationPeer

为了修复这个内存泄漏,我使用以下代码制作了自己的 UserControl

public class MyUserControl : UserControl
{
protected override System.Windows.Automation.Peers.AutomationPeer OnCreateAutomationPeer()
{
return null;
}
}

这似乎删除了 UserControl 可能引用的任何 AutomationPeer 实例,这些实例可能会保留我正在内存中交换的内容...

但我仍然很想知道 ToolBarAutomationPeer 是如何进入我的 UserControl 的,以及我在 OnCreateAutomationPeer 方法?

我不太熟悉自动化调用,不确定它们何时有用。

最佳答案

我很想看到更多代码来尝试弄清楚为什么 ToolBarAutomationPeer 也出现了,但基本上自动化对等点是为了可访问性。屏幕阅读器和其他自动化工具可以使用自动化对等点来运行您的应用程序。常见用途是供以某种方式残障人士使用,也适用于测试自动化工具。

通过像上面那样返回 null,您将使您的 UserControl 完全无法被自动化访问。

关于WPF 用户控件内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3306538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com