Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
Dispatcher-Klasse
Stellt Dienste zum Verwalten der Warteschlange von Arbeitsaufgaben für einen Thread bereit.
Assembly: WindowsBase (in WindowsBase.dll)
Der Dispatcher-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
CurrentDispatcher | Ruft den Dispatcher für den derzeit ausgeführten Thread ab bzw. erstellt einen neuen, wenn dem Thread noch kein Dispatcher zugeordnet ist. |
|
HasShutdownFinished | Bestimmt, ob der Dispatcher die Beendigung abgeschlossen hat. |
|
HasShutdownStarted | Bestimmt, ob der Dispatcher gerade beendet wird. |
|
Hooks | Ruft die Auflistung von Hooks ab, die zusätzliche Ereignisinformationen zum Dispatcher bereitstellen. |
|
Thread | Ruft den Thread ab, dem dieser Dispatcher zugeordnet ist. |
| Name | Beschreibung | |
|---|---|---|
|
BeginInvoke(Delegate, Object[]) | Führt den angegebenen Delegaten asynchron mit den angegebenen Argumenten für den Thread aus, für den der Dispatcher erstellt wurde. |
|
BeginInvoke(DispatcherPriority, Delegate) | Führt den angegebenen Delegaten asynchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist. |
|
BeginInvoke(Delegate, DispatcherPriority, Object[]) | Führt den angegebenen Delegaten asynchron mit den angegebenen Argumenten und der angegebenen Priorität für den Thread aus, für den der Dispatcher erstellt wurde. |
|
BeginInvoke(DispatcherPriority, Delegate, Object) | Führt den angegebenen Delegaten asynchron mit der angegebenen Priorität und dem angegebenen Argument auf dem Thread aus, dem der Dispatcher zugeordnet ist. |
|
BeginInvoke(DispatcherPriority, Delegate, Object, Object[]) | Führt den angegebenen Delegaten asynchron mit der angegebenen Priorität und dem angegebenen Argumentarray auf dem Thread aus, dem der Dispatcher zugeordnet ist. |
|
BeginInvokeShutdown | Initiiert ein asynchrones Beenden des Dispatcher. |
|
CheckAccess | Bestimmt, ob der aufrufende Thread diesem Dispatcher zugeordnet ist. |
|
DisableProcessing | Deaktiviert Verarbeitung der Dispatcher-Warteschlange. |
|
Equals(Object) | Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.) |
|
ExitAllFrames | Anforderung zum Beenden aller Frames einschließlich geschachtelter Frames. |
|
Finalize | Gibt einem Objekt Gelegenheit zu dem Versuch, Ressourcen freizugeben und andere Bereinigungen durchzuführen, bevor es von der automatische Speicherbereinigung freigegeben wird. (Von Object geerbt.) |
|
FromThread | Ruft den Dispatcher für den angegebenen Thread ab. |
|
GetHashCode | Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.) |
|
GetType | Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.) |
|
Invoke(Delegate, Object[]) | Führt den angegebenen Delegaten synchron mit den angegebenen Argumenten für den Thread aus, dem der Dispatcher zugeordnet ist. |
|
Invoke(DispatcherPriority, Delegate) | Führt den angegebenen Delegaten synchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist. |
|
Invoke(Delegate, TimeSpan, Object[]) | Führt den angegebenen Delegaten in der angegebenen Zeitspanne mit der angegebenen Priorität und den angegebenen Argumenten synchron für den Thread aus, dem der Dispatcher zugeordnet ist. |
|
Invoke(Delegate, DispatcherPriority, Object[]) | Führt den angegebenen Delegaten mit der angegebenen Priorität und den angegebenen Argumenten synchron auf dem Thread aus, dem der Dispatcher zugeordnet ist. |
|
Invoke(DispatcherPriority, Delegate, Object) | Führt den angegebenen Delegaten mit der angegebenen Priorität und dem angegebenen Argument synchron auf dem Thread aus, dem der Dispatcher zugeordnet ist. |
|
Invoke(DispatcherPriority, TimeSpan, Delegate) | Führt den angegebenen Delegaten synchron mit der angegebenen Priorität und dem angegebenen Timeoutwert auf dem Thread aus, in dem der Dispatcher erstellt wurde. |
|
Invoke(Delegate, TimeSpan, DispatcherPriority, Object[]) | Führt den angegebenen Delegaten in der angegebenen Zeitspanne mit der angegebenen Priorität und den angegebenen Argumenten synchron für den Thread aus, dem der Dispatcher zugeordnet ist. |
|
Invoke(DispatcherPriority, Delegate, Object, Object[]) | Führt den angegebenen Delegaten mit der angegebenen Priorität und den angegebenen Argumenten synchron auf dem Thread aus, dem der Dispatcher zugeordnet ist. |
|
Invoke(DispatcherPriority, TimeSpan, Delegate, Object) | Führt den angegebenen Delegaten mit der angegebenen Priorität und dem angegebenen Argument synchron auf dem Thread aus, dem der Dispatcher zugeordnet ist. |
|
Invoke(DispatcherPriority, TimeSpan, Delegate, Object, Object[]) | Führt den angegebenen Delegaten mit der angegebenen Priorität und den angegebenen Argumenten synchron auf dem Thread aus, dem der Dispatcher zugeordnet ist. |
|
InvokeShutdown | Initiiert die synchrone Beendigung des Dispatcher. |
|
MemberwiseClone | Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.) |
|
PushFrame | Tritt in eine Ausführungsschleife ein. |
|
Run | Stellt den Hauptausführungsframe in die Ereigniswarteschlange von Dispatcher. |
|
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.) |
|
ValidatePriority | Ermittelt, ob die angegebene DispatcherPriority eine gültige Priorität ist. |
|
VerifyAccess | Bestimmt, ob der aufrufende Thread auf dieses Dispatcher zugreifen kann. |
| Name | Beschreibung | |
|---|---|---|
|
ShutdownFinished | Tritt ein, wenn der Dispatcher die Beendigung abschließt. |
|
ShutdownStarted | Tritt ein, wenn der Dispatcher die Beendigung beginnt. |
|
UnhandledException | Tritt ein, wenn eine Threadausnahme ausgelöst und während der Ausführung eines Delegaten mit Invoke oder BeginInvoke nicht abgefangen wird. |
|
UnhandledExceptionFilter | Tritt ein, wenn eine Threadausnahme ausgelöst und nicht abgefangen wird, während ein Delegat mit Invoke oder BeginInvoke ausgeführt wird und sich in der Filterstufe befindet. |
| Name | Beschreibung | |
|---|---|---|
|
BeginInvoke(Action) | Überladen. Führt den angegebenen Delegaten asynchron mit der normalen Priorität für den Thread aus, in dem der angegebene Dispatcher erstellt wurde. (Durch DispatcherExtensions definiert.) |
|
BeginInvoke(Action, DispatcherPriority) | Überladen. Führt den angegebenen Delegaten asynchron mit der angegebenen Priorität für den Thread aus, in dem der angegebene Dispatcher erstellt wurde. (Durch DispatcherExtensions definiert.) |
|
Invoke(Action) | Überladen. Führt den angegebenen Delegaten synchron mit der normalen Priorität für den Thread aus, in dem der angegebene Dispatcher erstellt wurde. (Durch DispatcherExtensions definiert.) |
|
Invoke(Action, DispatcherPriority) | Überladen. Führt den angegebenen Delegaten synchron mit der angegebenen Priorität für den Thread aus, in dem der angegebene Dispatcher erstellt wurde. (Durch DispatcherExtensions definiert.) |
|
Invoke(Action, TimeSpan) | Überladen. Führt den angegebenen Delegaten synchron für den Thread aus, in dem der angegebene Dispatcher erstellt wurde, und beendet die Ausführung nach Ablauf des angegebenen Timeouts. (Durch DispatcherExtensions definiert.) |
|
Invoke(Action, TimeSpan, DispatcherPriority) | Überladen. Führt den angegebenen Delegaten synchron und mit der angegebenen Priorität für den Thread aus, in dem der angegebene Dispatcher erstellt wurde, und beendet die Ausführung nach Ablauf des angegebenen Timeouts. (Durch DispatcherExtensions definiert.) |
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 UI-Threads 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 UI-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.
Im folgenden Beispiel wird gezeigt, wie eine Operation in einem Dispatcher platziert wird. Den vollständigen Quellcode dieses Beispiels finden Sie unter Beispiel für eine Singlethread-Anwendung mit Berechnung mit langer Laufzeit.
Zuerst wird ein Delegat erstellt, der keine Argumente erwartet.
Anschließend wird BeginInvoke(DispatcherPriority, Delegate) aufgerufen. Bei diesem Aufruf von BeginInvoke(DispatcherPriority, Delegate) werden zwei Parameter übergeben: die Priorität, die auf DispatcherPriority.Normal festgelegt wird, und der Rückruf, der durch eine Instanz des Delegaten NextPrimeDelegate übergeben wird.
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.