Der Dispatcher verwaltet für einen bestimmten Thread eine priorisierte Warteschlange von Arbeitsaufgaben.
Wenn ein Dispatcher für einen Thread erstellt wird, wird dieser zum einzigen Dispatcher, der dem betreffenden Thread zugeordnet werden kann, selbst dann, wenn der Dispatcher beendet wird.
Wenn Sie versuchen, den CurrentDispatcher für den aktuellen Thread abzurufen, und dem Thread kein Dispatcher zugeordnet ist, wird ein Dispatcher erstellt.
Wenn ein Dispatcher beendet wird, kann er nicht neu gestartet werden.
In WPF kann auf ein DispatcherObject nur von dem Dispatcher aus zugegriffen werden, dem es zugeordnet ist. Ein Hintergrundthread kann beispielsweise nicht den Inhalt eines Button aktualisieren, der dem Dispatcher des Benutzeroberfläche-Thread zugeordnet ist. Um im Hintergrundthread auf die Content-Eigenschaft des Button zugreifen zu können, muss der Hintergrundthread die Arbeit an den Dispatcher delegieren, der dem Benutzeroberfläche-Thread zugeordnet ist. Dies erreichen Sie entweder mit Invoke oder mit BeginInvoke. Invoke ist synchron und BeginInvoke ist asynchron. Die Operation wird mit der angegebenen DispatcherPriority in die Warteschlange des Dispatcher eingefügt.
Wenn BeginInvoke für einen beendeten Dispatcher aufgerufen wird, wird die Statuseigenschaft der zurückgegebenen DispatcherOperation auf Aborted festgelegt.
Alle Methoden von Dispatcher, mit Ausnahme von DisableProcessing, sind Freethreadmethoden.
Von DispatcherObject abgeleitete Objekte verfügen über Threadaffinität.
Von Freezable abgeleitete Objekte sind Freethreadobjekte, wenn sie fixiert werden. Weitere Informationen finden Sie unter Übersicht über Freezable-Objekte.