Compartir a través de


Aspectos relacionados con subprocesos de la UI Automation

Nota

Esta documentación está dirigida a los desarrolladores de .NET Framework que quieran usar las clases de automatización de la interfaz de usuario administradas definidas en el espacio de nombres System.Windows.Automation. Para ver la información más reciente acerca de la automatización de la interfaz de usuario, consulte Windows Automation API: automatización de la interfaz de usuario.

Debido a la forma en que Microsoft UI Automation utiliza los mensajes de Windows, pueden producirse conflictos cuando una aplicación cliente intenta interactuar con su propia UI en el subproceso de interfaz de usuario. Estos conflictos pueden dar lugar a un rendimiento muy lento o incluso provocar que la aplicación deje de responder.

Si la aplicación cliente está diseñada para interactuar con todos los elementos del escritorio, incluida su propia UI, debe realizar todas las llamadas a UI Automation en un subproceso independiente. Esto incluye la ubicación de elementos (por ejemplo, mediante el método TreeWalker o FindAll ) y el uso de patrones de control.

Es seguro realizar llamadas a UI Automation dentro de un controlador de eventos de UI Automation, porque siempre se llama al controlador de eventos en un subproceso no de interfaz de usuario. No obstante, al suscribirse a eventos que pueden provenir de la UI de la aplicación cliente, debe realizar la llamada a AddAutomationEventHandler, o a un método relacionado, en un subproceso no de interfaz de usuario. Quite los controladores de eventos que estén en el mismo subproceso.