Partager via


Problèmes liés aux threads UI Automation

Mise à jour : novembre 2007

Étant donné la manière dont Microsoft UI Automation utilise les messages Windows, des conflits peuvent survenir lorsqu'une application cliente tente d'interagir avec sa propre interface utilisateur sur le thread d'interface utilisateur. Ces conflits peuvent entraîner une très nette diminution des performances ou même provoquer le blocage de l'application.

Si votre application cliente est destinée à interagir avec tous les éléments du bureau, y compris sa propre interface utilisateur, vous devez effectuer tous les appels UI Automation sur un thread distinct. Cela inclut la localisation des éléments (par exemple, à l'aide de TreeWalker ou de la méthode FindAll) et l'utilisation de modèles de contrôle.

Il est possible d'effectuer des appels UI Automation sans risque dans un gestionnaire d'événements UI Automation, car le gestionnaire d'événements est toujours appelé sur un thread indépendant de l'interface utilisateur. Toutefois, lorsque vous vous abonnez à des événements susceptibles de provenir de l'interface utilisateur de votre application cliente, vous devez appeler AddAutomationEventHandler ou une méthode associée, sur un thread indépendant de l'interface utilisateur. Supprimez les gestionnaires d'événements sur le même thread.