Problemi relativi al threading di automazione interfaccia utente
Nota |
---|
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.