Немного предыстории...
Я разрабатываю приложение для автоматизации пользовательского интерфейса, которое случайным образом взаимодействует с элементами управления в нашем пользовательском интерфейсе. И приложение, и автоматизированный пользовательский интерфейс являются приложениями WPF. Я использую фреймворк доступности UI Automation. Иногда я получаю ElementNotAvailableException в своем приложении, которое я перехватываю и обрабатываю. При профилировании нашего пользовательского интерфейса с помощью ANTS 7 я заметил, что эти исключения появляются в куче мусора Gen 2. Новые экземпляры исключения совпадают с тем, сколько раз я поймал исключение в своем приложении.
Я просмотрел GCRoot с помощью WinDBG, страницы UIAutomation и не нашел четкого объяснения, почему в автоматизированном приложении появляется перехваченное исключение. Объекты не освобождаются при автоматизации пользовательского интерфейса и даже остаются, когда я закрываю приложение автоматизации.
Любые идеи?