Проблемы потока модели автоматизация пользовательского интерфейса
![]() |
---|
Эта документация предназначена для разработчиков на платформе .NET Framework, которым требуется использовать управляемые классы UI Automation, определенные в пространстве имен System.Windows.Automation.Последние сведения о UI Automation см. на веб-странице Windows Automation API: UI Automation. |
Поскольку Microsoft UI Automation использует сообщения Windows, могут возникать конфликты, когда клиентское приложение пытается взаимодействовать с собственным UI в потоке UI. Эти конфликты могут значительно снизить производительность или даже блокировать работу приложения.
Если клиентское приложение предназначено для взаимодействия со всеми элементами на рабочем столе, включая собственный UI, рекомендуется выполнять все вызовы UI Automation в отдельном потоке. Сюда входит поиск элементов (например, с помощью TreeWalker или метода FindAll) и использование шаблонов элементов управления.
Безопасным является выполнение вызовов UI Automation внутри обработчика событий UI Automation, так как обработчик событий всегда вызывается не в потоке UI. Однако при присоединении к событию, которое может возникать из UI клиентского приложения, необходимо вызвать AddAutomationEventHandler или связанный метод не в потоке UI. Удалите обработчики событий в том же потоке.