Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

Dispatcher-Klasse

Stellt Dienste zum Verwalten der Warteschlange von Arbeitsaufgaben für einen Thread bereit.

System.Object
  System.Windows.Threading.Dispatcher

Namespace:  System.Windows.Threading
Assembly:  WindowsBase (in WindowsBase.dll)
public sealed class Dispatcher

Der Dispatcher-Typ macht die folgenden Member verfügbar.

  Name Beschreibung
Öffentliche Eigenschaft Statischer Member CurrentDispatcher Ruft den Dispatcher für den derzeit ausgeführten Thread ab bzw. erstellt einen neuen, wenn dem Thread noch kein Dispatcher zugeordnet ist.
Öffentliche Eigenschaft HasShutdownFinished Bestimmt, ob der Dispatcher die Beendigung abgeschlossen hat.
Öffentliche Eigenschaft HasShutdownStarted Bestimmt, ob der Dispatcher gerade beendet wird.
Öffentliche Eigenschaft Hooks Ruft die Auflistung von Hooks ab, die zusätzliche Ereignisinformationen zum Dispatcher bereitstellen.
Öffentliche Eigenschaft Thread Ruft den Thread ab, dem dieser Dispatcher zugeordnet ist.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Methode 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.
Öffentliche Methode BeginInvoke(DispatcherPriority, Delegate) Führt den angegebenen Delegaten asynchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.
Öffentliche Methode 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.
Öffentliche Methode 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.
Öffentliche Methode 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.
Öffentliche Methode BeginInvokeShutdown Initiiert ein asynchrones Beenden des Dispatcher.
Öffentliche Methode CheckAccess Bestimmt, ob der aufrufende Thread diesem Dispatcher zugeordnet ist.
Öffentliche Methode DisableProcessing Deaktiviert Verarbeitung der Dispatcher-Warteschlange.
Öffentliche Methode Equals(Object) Bestimmt, ob das angegebene Object und das aktuelle Object gleich sind. (Von Object geerbt.)
Öffentliche Methode Statischer Member ExitAllFrames Anforderung zum Beenden aller Frames einschließlich geschachtelter Frames.
Geschützte Methode 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.)
Öffentliche Methode Statischer Member FromThread Ruft den Dispatcher für den angegebenen Thread ab.
Öffentliche Methode GetHashCode Fungiert als Hashfunktion für einen bestimmten Typ. (Von Object geerbt.)
Öffentliche Methode GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche Methode Invoke(Delegate, Object[]) Führt den angegebenen Delegaten synchron mit den angegebenen Argumenten für den Thread aus, dem der Dispatcher zugeordnet ist.
Öffentliche Methode Invoke(DispatcherPriority, Delegate) Führt den angegebenen Delegaten synchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.
Öffentliche Methode 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.
Öffentliche Methode 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.
Öffentliche Methode 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.
Öffentliche Methode 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.
Öffentliche Methode 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.
Öffentliche Methode 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.
Öffentliche Methode 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.
Öffentliche Methode 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.
Öffentliche Methode InvokeShutdown Initiiert die synchrone Beendigung des Dispatcher.
Geschützte Methode MemberwiseClone Erstellt eine flache Kopie des aktuellen Object. (Von Object geerbt.)
Öffentliche Methode Statischer Member PushFrame Tritt in eine Ausführungsschleife ein.
Öffentliche Methode Statischer Member Run Stellt den Hauptausführungsframe in die Ereigniswarteschlange von Dispatcher.
Öffentliche Methode ToString Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Öffentliche Methode Statischer Member ValidatePriority Ermittelt, ob die angegebene DispatcherPriority eine gültige Priorität ist.
Öffentliche Methode VerifyAccess Bestimmt, ob der aufrufende Thread auf dieses Dispatcher zugreifen kann.
Zum Seitenanfang
  Name Beschreibung
Öffentliches Ereignis ShutdownFinished Tritt ein, wenn der Dispatcher die Beendigung abschließt.
Öffentliches Ereignis ShutdownStarted Tritt ein, wenn der Dispatcher die Beendigung beginnt.
Öffentliches Ereignis UnhandledException Tritt ein, wenn eine Threadausnahme ausgelöst und während der Ausführung eines Delegaten mit Invoke oder BeginInvoke nicht abgefangen wird.
Öffentliches Ereignis 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.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Erweiterungsmethode 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.)
Öffentliche Erweiterungsmethode 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.)
Öffentliche Erweiterungsmethode 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.)
Öffentliche Erweiterungsmethode 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.)
Öffentliche Erweiterungsmethode 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.)
Öffentliche Erweiterungsmethode 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.)
Zum Seitenanfang

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.


public delegate void NextPrimeDelegate();


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.


startStopButton.Dispatcher.BeginInvoke(
    DispatcherPriority.Normal,
    new NextPrimeDelegate(CheckNextNumber));


.NET Framework

Unterstützt in: 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

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.
Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ