Partilhar via


Problemas de execução simultânea na automação da interface do utilizador

Observação

Esta documentação destina-se a desenvolvedores do .NET Framework que desejam usar as classes de automação da interface do usuário gerenciadas definidas no namespace System.Windows.Automation. Para obter as informações mais recentes sobre a automação da interface de utilizador, consulte API de automação do Windows: Automação da Interface de Utilizador.

Devido à maneira como a Automação da Interface do Usuário da Microsoft usa mensagens do Windows, conflitos podem ocorrer quando um aplicativo cliente tenta interagir com sua própria interface do usuário no thread da interface do usuário. Esses conflitos podem levar a um desempenho muito lento ou até mesmo fazer com que o aplicativo pare de responder.

Se o seu aplicativo cliente se destina a interagir com todos os elementos na área de trabalho, incluindo sua própria interface do usuário, você deve fazer todas as chamadas de Automação da Interface do Usuário em um thread separado. Isso inclui localizar elementos (por exemplo, usando TreeWalker ou o FindAll método) e usando padrões de controle.

É seguro fazer chamadas de UI Automation dentro de um manipulador de eventos de UI Automation, porque o manipulador de eventos é sempre invocado num thread separado da interface do usuário. No entanto, ao assinar eventos que podem ser originados da interface de utilizador do aplicativo cliente, deve-se fazer a chamada para AddAutomationEventHandler, ou um método relacionado, num thread que não seja da interface de utilizador. Remova manipuladores de eventos no mesmo thread.