一点背景...
我正在开发一个 UI 自动化应用程序,它与我们 UI 上的控件随机交互。被自动化的应用程序和 UI 都是 WPF 应用程序。我正在使用 UI 自动化可访问性框架。有时我会在我的应用程序中捕获并处理一个 ElementNotAvailableException。在使用 ANTS 7 分析我们的 UI 时,我注意到这些异常出现在 Gen 2 垃圾堆上。异常的新实例与我在应用程序中捕获异常的次数相匹配。
我已经查看了使用 WinDBG 的 GCRoot、UIAutomation 页面,但我还没有找到一个明确的解释来解释为什么在自动化的应用程序中会出现捕获的异常。当 UI 被自动化时,这些对象不会被释放,甚至在我关闭我的自动化应用程序时仍然存在。
有任何想法吗?