Windows UIAutomationElement内存泄漏

时间:2018-07-17 08:35:51

标签: c# wpf memory-leaks microsoft-ui-automation automationelement

我有一个WPF应用程序,出于测试目的,该程序需要自动化。有一个使用Windows UIAutomation框架执行此操作的工具。

问题是当我尝试访问主应用程序上的元素并触发它们时,在主应用程序上分配了内存,并且无法在其上强制使用GC。除此之外,如果未找到页面上的元素,并且执行了多次重托盘,则有更多的内存要分配且不释放。我相信问题来自 AutomationElement 类的 Find FindAll 方法。

这个问题似乎很老了,没有通用的解决方案[1] [2]。

自动化框架会进行一些缓存,以更好地访问UI元素。我想到的一种可能的解决方案是禁用UI元素的缓存或强制清除缓存。以前有没有人做过这件事,可以帮助我吗?

此外,您还有其他解决方案来解决Windows UI自动化框架引起的内存泄漏问题吗?

我在Win7和Win10机器上都进行了测试。

[1] https://social.technet.microsoft.com/Forums/lync/en-US/12f6447d-afa3-49b9-9862-013f5d47419a/memory-leak-with-ui-automation?forum=w8itproperf

[2] UIAutomation Memory Issue

0 个答案:

没有答案