Condividi tramite


Problemi relativi al threading di automazione interfaccia utente

NotaNota

La presente documentazione è destinata agli sviluppatori di .NET Framework che desiderano utilizzare le classi UI Automation gestite definite nello spazio dei nomi System.Windows.Automation.Per informazioni aggiornate sull'UI Automation, vedere Windows Automation API: Automazione interfaccia utente (la pagina potrebbe essere in inglese).

La modalità di utilizzo dei messaggi di Windows in Microsoft UI Automation può causare conflitti quando un'applicazione client tenta di interagire con la propria UI nel thread dell'UI. A causa di questi conflitti è possibile che le prestazioni risultino lente o che l'applicazione non risponda.

Se è necessario che l'applicazione client interagisca con tutti gli elementi sul desktop, inclusa la propria UI, effettuare tutte le chiamate a UI Automation su un thread separato. Sono incluse le operazioni di posizionamento di elementi (ad esempio tramite TreeWalker o il metodo FindAll) e l'utilizzo dei pattern di controllo.

L'esecuzione delle chiamate ad UI Automation all'interno di un gestore eventi di UI Automation è un'operazione sicura, poiché il gestore eventi viene sempre chiamato su un thread non di UI. Quando tuttavia si sottoscrivono eventi che possono avere origine dall'UI dell'applicazione client, è necessario effettuare la chiamata a AddAutomationEventHandler o a un metodo correlato su un thread non di UI. Rimuovere i gestori eventi sullo stesso thread.