Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

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.

  NameBeschreibung
Öffentliche EigenschaftStatischer MemberCurrentDispatcherRuft den Dispatcher für den derzeit ausgeführten Thread ab bzw. erstellt einen neuen, wenn dem Thread noch kein Dispatcher zugeordnet ist.
Öffentliche EigenschaftHasShutdownFinishedBestimmt, ob der Dispatcher die Beendigung abgeschlossen hat.
Öffentliche EigenschaftHasShutdownStartedBestimmt, ob der Dispatcher gerade beendet wird.
Öffentliche EigenschaftHooksRuft die Auflistung von Hooks ab, die zusätzliche Ereignisinformationen zum Dispatcher bereitstellen.
Öffentliche EigenschaftThreadRuft den Thread ab, dem dieser Dispatcher zugeordnet ist.
Zum Seitenanfang

  NameBeschreibung
Öffentliche MethodeBeginInvoke(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 MethodeBeginInvoke(DispatcherPriority, Delegate)Führt den angegebenen Delegaten asynchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.
Öffentliche MethodeBeginInvoke(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 MethodeBeginInvoke(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 MethodeBeginInvoke(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 MethodeBeginInvokeShutdownInitiiert ein asynchrones Beenden des Dispatcher.
Öffentliche MethodeCheckAccessBestimmt, ob der aufrufende Thread diesem Dispatcher zugeordnet ist.
Öffentliche MethodeDisableProcessingDeaktiviert Verarbeitung der Dispatcher-Warteschlange.
Öffentliche MethodeEquals(Object)Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist. (Von Object geerbt.)
Öffentliche MethodeStatischer MemberExitAllFramesAnforderung zum Beenden aller Frames einschließlich geschachtelter Frames.
Öffentliche MethodeStatischer MemberFromThreadRuft den Dispatcher für den angegebenen Thread ab.
Öffentliche MethodeGetHashCodeFungiert als die Standardhashfunktion. (Von Object geerbt.)
Öffentliche MethodeGetTypeRuft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche MethodeInvoke(Action)Führt den angegebenen Action synchron auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche MethodeInvoke(Action, DispatcherPriority)Führt den angegebenen Action synchron mit der angegebenen Priorität auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche MethodeInvoke(Delegate, Object[])Führt den angegebenen Delegaten synchron mit den angegebenen Argumenten für den Thread aus, dem der Dispatcher zugeordnet ist.
Öffentliche MethodeInvoke(DispatcherPriority, Delegate)Führt den angegebenen Delegaten synchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.
Öffentliche MethodeInvoke(Action, DispatcherPriority, CancellationToken)Führt den angegebenen Action synchron mit der angegebenen Priorität auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche MethodeInvoke(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 MethodeInvoke(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 MethodeInvoke(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 MethodeInvoke(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 MethodeInvoke(Action, DispatcherPriority, CancellationToken, TimeSpan)Führt den angegebenen Action synchron mit der angegebenen Priorität auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche MethodeInvoke(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 MethodeInvoke(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 MethodeInvoke(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 MethodeInvoke(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 MethodeInvoke<TResult>(Func<TResult>)Führt den angegebenen Func<TResult> synchron auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche MethodeInvoke<TResult>(Func<TResult>, DispatcherPriority)Führt den angegebenen Func<TResult> synchron mit der angegebenen Priorität auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche MethodeInvoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)Führt den angegebenen Func<TResult> synchron mit der angegebenen Priorität auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche MethodeInvoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)Führt den angegebenen Func<TResult> synchron mit der angegebenen Priorität auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche MethodeInvokeAsync(Action)Führt den angegebenen Action asynchron auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche MethodeInvokeAsync(Action, DispatcherPriority)Führt den angegebenen Action asynchron mit der angegebenen Priorität auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche MethodeInvokeAsync(Action, DispatcherPriority, CancellationToken)Führt den angegebenen Action asynchron mit der angegebenen Priorität auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche MethodeInvokeAsync<TResult>(Func<TResult>)Führt den angegebenen Func<TResult> asynchron auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche MethodeInvokeAsync<TResult>(Func<TResult>, DispatcherPriority)Führt den angegebenen Func<TResult> asynchron mit der angegebenen Priorität auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche MethodeInvokeAsync<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)Führt den angegebenen Func<TResult> synchron mit der angegebenen Priorität auf dem Thread der Dispatcher zugeordnet ist.
Öffentliche MethodeInvokeShutdownInitiiert die synchrone Beendigung des Dispatcher.
Öffentliche MethodeStatischer MemberPushFrameTritt in eine Ausführungsschleife ein.
Öffentliche MethodeStatischer MemberRunStellt den Hauptausführungsframe in die Ereigniswarteschlange von Dispatcher.
Öffentliche MethodeToStringGibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Öffentliche MethodeStatischer MemberValidatePriorityErmittelt, ob die angegebene DispatcherPriority eine gültige Priorität ist.
Öffentliche MethodeVerifyAccessBestimmt, ob der aufrufende Thread auf dieses Dispatcher zugreifen kann.
Öffentliche MethodeStatischer MemberYield()Erstellt ein awaitable-Objekt, das asynchron Steuerelement wieder auf den aktuellen Dispatcher führt und bietet die Möglichkeit für den Dispatcher auf andere Ereignisse verarbeiten.
Öffentliche MethodeStatischer MemberYield(DispatcherPriority)Erstellt ein awaitable-Objekt, das asynchron Steuerelement wieder auf den aktuellen Dispatcher führt und bietet die Möglichkeit für den Dispatcher auf andere Ereignisse verarbeiten. Die Arbeit, die auftritt, wenn die Steuerung an den Code warten auf das Ergebnis dieser Methode zurückgibt, wird mit der angegebenen Priorität berechnet.
Zum Seitenanfang

  NameBeschreibung
Öffentliches EreignisShutdownFinishedTritt ein, wenn der Dispatcher die Beendigung abschließt.
Öffentliches EreignisShutdownStartedTritt ein, wenn der Dispatcher die Beendigung beginnt.
Öffentliches EreignisUnhandledExceptionTritt ein, wenn eine Threadausnahme ausgelöst und während der Ausführung eines Delegaten mit Invoke oder BeginInvoke nicht abgefangen wird.
Öffentliches EreignisUnhandledExceptionFilterTritt 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

  NameBeschreibung
Öffentliche ErweiterungsmethodeBeginInvoke(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 ErweiterungsmethodeBeginInvoke(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 ErweiterungsmethodeInvoke(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 ErweiterungsmethodeInvoke(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 ErweiterungsmethodeInvoke(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 ErweiterungsmethodeInvoke(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. A Dispatcher entsteht auch beim Erstellen einer DispatcherObject. Wenn Sie erstellen eine Dispatcher in einem Hintergrundthread, achten Sie darauf, den Dispatcher Herunterfahren, bevor den Thread wird beendet.

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-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 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.

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.5, 4, 3.5, 3.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

Es werden nicht alle Versionen sämtlicher Plattformen von .NET Framework unterstützt.. 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.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft