Il thread dell'interfaccia utente e il thread di dispatcher sono uguali in WPF o c'è qualche differenza?Qual è la differenza tra il thread di Dispatcher e il thread dell'interfaccia utente
risposta
A Dispatcher è responsabile della gestione del lavoro per una discussione.
Il thread dell'interfaccia utente è il thread che esegue il rendering dell'interfaccia utente.
Il thread dell'interfaccia utente inserisce gli elementi di lavoro all'interno di un oggetto denominato Dispatcher. Il Dispatcher seleziona gli elementi di lavoro su base prioritaria e ne esegue uno ogni uno per il completamento. Ogni thread UI deve avere almeno un Dispatcher, e ogni Dispatcher può eseguire gli oggetti di lavoro in esattamente un thread.
From this article. Read it for a more thorough description of the UI Rendering in WPF
thread UI è un termine generale (non è specifico per WPF) e descrive un filo che ha componenti UI ad esso associati. Di solito, c'è solo un thread UI per applicazione (nel qual caso, si chiama il thread UI), ma ce ne possono essere di più, se diversi componenti dell'interfaccia utente (di solito Windows) sono associati a thread diversi.
Dispatcher
è il meccanismo utilizzato da WPF per associare un componente a un thread e per eseguire il lavoro su quel thread. Ma può esserci anche una discussione con un Dispatcher
, ma nessun componente UI associato. In tal caso, è un thread di dispatcher, ma non un thread dell'interfaccia utente.