Dispatcher.Invoke Methode

Definition

Führt den angegebenen Delegaten synchron auf dem Thread aus, dem der Dispatcher zugeordnet ist.

Überlädt

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.

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, 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(Action, DispatcherPriority, CancellationToken, TimeSpan)

Führt die angegebene Action synchron mit der angegebenen Priorität 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(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(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(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(Action, DispatcherPriority, CancellationToken)

Führt die angegebene Action synchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.

Invoke(DispatcherPriority, Delegate)

Führt den angegebenen Stellvertretung synchron an der angegebenen Priorität im Thread aus, mit dem die Dispatcher angegebene Stellvertretung verknüpft ist.

Invoke(Delegate, Object[])

Führt den angegebenen Delegaten synchron mit den angegebenen Argumenten für den Thread aus, dem der Dispatcher zugeordnet ist.

Invoke(Action, DispatcherPriority)

Führt die angegebene Action synchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.

Invoke(Action)

Führt die angegebene Action synchron auf dem 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<TResult>(Func<TResult>)

Führt die angegebene Func<TResult> synchron auf dem Thread aus, dem der Dispatcher zugeordnet ist.

Invoke<TResult>(Func<TResult>, DispatcherPriority)

Führt die angegebene Func<TResult> synchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.

Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)

Führt die angegebene Func<TResult> synchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.

Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)

Führt die angegebene Func<TResult> synchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.

Beispiele

Im folgenden Beispiel wird ein Stellvertretung auf eine Dispatcher zu verwendende InvokeStelle platziertNormal.

// Places the delegate onto the UI Thread's Dispatcher
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
    // Place delegate on the Dispatcher.
    this.Dispatcher.Invoke(DispatcherPriority.Normal,
        new TimerDispatcherDelegate(TimerWorkItem));
}
' Places the delegate onto the UI Thread's Dispatcher
Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
    ' Place delegate on the Dispatcher.
    Me.Dispatcher.Invoke(DispatcherPriority.Normal, New TimerDispatcherDelegate(AddressOf TimerWorkItem))
End Sub

Hinweise

In WPF kann nur der Thread, der ein DispatcherObject Objekt erstellt hat, zugreifen. Beispielsweise kann ein Hintergrundthread, der aus dem Hauptoberflächenthread gedreht wird, den Inhalt eines Button auf dem UI-Thread erstellten Elements nicht aktualisieren. Damit der Hintergrundthread auf die Inhaltseigenschaft des ButtonInhalts zugreifen kann, muss der Hintergrundthread die Arbeit an den Dispatcher zugeordneten UI-Thread delegieren. Dies wird mithilfe von entweder Invoke oder BeginInvoke. Invoke ist synchron und BeginInvoke ist asynchron. Der Vorgang wird der Ereigniswarteschlange des Dispatcher angegebenen DispatcherPriorityHinzugefügt.

Invoke ist ein synchroner Vorgang; Daher wird das Steuerelement erst nach dem Zurückgeben des Rückrufs an das aufrufende Objekt zurückgegeben.

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.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate * obj * obj[] -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate, arg As Object, ParamArray args As Object()) As Object

Parameter

priority
DispatcherPriority

Die Priorität relativ zu den anderen ausstehenden Vorgängen in der Dispatcher Ereigniswarteschlange, mit der die angegebene Methode aufgerufen wird.

timeout
TimeSpan

Die maximale Zeit, bis der Vorgang gestartet werden soll. Sobald der Vorgang gestartet wurde, wird er abgeschlossen, bevor diese Methode zurückgegeben wird. Verwenden Sie zum Angeben einer unendlichen Wartezeit einen Wert von -1. In einem gleichen Threadaufruf wird jeder andere negative Wert in -1 konvertiert, was zu einer unendlichen Wartezeit führt. Bei einem Threadaufruf löst ein anderer negativer Wert einen ArgumentOutOfRangeException.

method
Delegate

Ein Delegat zu einer Methode, die mehrere Argumente erwartet und in die Dispatcher-Ereigniswarteschlange gestellt wird.

arg
Object

Ein Objekt, das als Argument an die angegebene Methode übergeben wird.

args
Object[]

Ein Array von Objekten, die als Argumente an die angegebene Methode übergeben werden sollen.

Gibt zurück

Object

Der Rückgabewert des aufgerufenen Delegaten bzw. null, wenn der Delegat keinen Wert zurückgibt.

Attribute

Ausnahmen

priority ist gleich Inactive.

priority ist kein gültiger DispatcherPriority.

method ist null.

timeout ist eine andere negative Zahl als -1, und diese Methode wurde über Threads aufgerufen.

Hinweise

arg kann sein null , wenn ein Argument nicht benötigt wird.

In WPF kann nur der Thread, der ein DispatcherObject Objekt erstellt hat, zugreifen. Beispielsweise kann ein Hintergrundthread, der aus dem Haupt-UI-Thread gedreht wird, den Inhalt eines Button auf dem UI-Thread erstellten Elements nicht aktualisieren. Damit der Hintergrundthread auf die Inhaltseigenschaft des ButtonHintergrundthreads zugreifen kann, muss der Hintergrundthread die Arbeit an den Dispatcher zugeordneten UI-Thread delegieren. Dies wird mithilfe von entweder Invoke oder BeginInvoke. Invoke ist synchron und BeginInvoke ist asynchron. Der Vorgang wird der Ereigniswarteschlange der Dispatcher angegebenen DispatcherPriorityHinzugefügt.

Invoke ist ein synchroner Vorgang; Daher wird das Steuerelement erst nach dem Zurückgeben des Rückrufs an das aufrufende Objekt zurückgegeben.

Gilt für

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.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate * obj -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate, arg As Object) As Object

Parameter

priority
DispatcherPriority

Die Priorität relativ zu den anderen ausstehenden Vorgängen in der Ereigniswarteschlange, mit der Dispatcher die angegebene Methode aufgerufen wird.

timeout
TimeSpan

Die maximale Zeit, bis der Vorgang gestartet werden soll. Nachdem der Vorgang gestartet wurde, wird es abgeschlossen, bevor diese Methode zurückgegeben wird. Um eine unendliche Wartezeit anzugeben, verwenden Sie einen Wert von -1. In einem gleichen Threadaufruf wird jeder andere negative Wert in -1 konvertiert, was zu einer unendlichen Wartezeit führt. In einem Querthreadaufruf wird ein ArgumentOutOfRangeExceptionanderer negativer Wert ausgelöst.

method
Delegate

Ein Delegat zu einer Methode, die mehrere Argumente erwartet und in die Dispatcher-Ereigniswarteschlange gestellt wird.

arg
Object

Ein Objekt, das als Argument an die angegebene Methode übergeben werden soll. Dies kann null sein, wenn keine Argumente benötigt werden.

Gibt zurück

Object

Der Rückgabewert des aufgerufenen Delegaten bzw. null, wenn der Delegat keinen Wert zurückgibt.

Attribute

Ausnahmen

priority ist gleich Inactive.

priority ist keine gültige Priorität.

method ist null.

Hinweise

arg kann sein null , wenn ein Argument nicht benötigt wird

In WPF kann nur der Thread, der ein DispatcherObject Objekt erstellt hat, zugreifen. Beispielsweise kann ein Hintergrundthread, der aus dem Hauptoberflächenthread gedreht wird, den Inhalt eines Button auf dem UI-Thread erstellten Elements nicht aktualisieren. Damit der Hintergrundthread auf die Inhaltseigenschaft des ButtonInhalts zugreifen kann, muss der Hintergrundthread die Arbeit an den Dispatcher zugeordneten UI-Thread delegieren. Dies wird mithilfe von entweder Invoke oder BeginInvoke. Invoke ist synchron und BeginInvoke ist asynchron. Der Vorgang wird der Ereigniswarteschlange des Dispatcher angegebenen DispatcherPriorityHinzugefügt.

Invoke ist ein synchroner Vorgang; Daher wird das Steuerelement erst nach dem Zurückgeben des Rückrufs an das aufrufende Objekt zurückgegeben.

Gilt für

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.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg, ... cli::array <System::Object ^> ^ args);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg, params object[] args);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate * obj * obj[] -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate, arg As Object, ParamArray args As Object()) As Object

Parameter

priority
DispatcherPriority

Die Priorität relativ zu den anderen ausstehenden Vorgängen in der Ereigniswarteschlange, mit der Dispatcher die angegebene Methode aufgerufen wird.

method
Delegate

Ein Delegat zu einer Methode, die mehrere Argumente erwartet und in die Dispatcher-Ereigniswarteschlange gestellt wird.

arg
Object

Ein Objekt, das als Argument an die angegebene Methode übergeben werden soll.

args
Object[]

Ein Array von Objekten, die als Argumente an die angegebene Methode übergeben werden sollen.

Gibt zurück

Object

Der Rückgabewert des aufgerufenen Delegaten bzw. null, wenn der Delegat keinen Wert zurückgibt.

Attribute

Ausnahmen

priority ist gleich Inactive.

priority ist keine gültige Priorität.

method ist null.

Hinweise

arg kann sein null , wenn ein Argument nicht benötigt wird

In WPF kann nur der Thread, der ein DispatcherObject Objekt erstellt hat, zugreifen. Beispielsweise kann ein Hintergrundthread, der aus dem Hauptoberflächenthread gedreht wird, den Inhalt eines Button auf dem UI-Thread erstellten Elements nicht aktualisieren. Damit der Hintergrundthread auf die Inhaltseigenschaft des ButtonInhalts zugreifen kann, muss der Hintergrundthread die Arbeit an den Dispatcher zugeordneten UI-Thread delegieren. Dies wird mithilfe von entweder Invoke oder BeginInvoke. Invoke ist synchron und BeginInvoke ist asynchron. Der Vorgang wird der Ereigniswarteschlange des Dispatcher angegebenen DispatcherPriorityHinzugefügt.

Invoke ist ein synchroner Vorgang; Daher wird das Steuerelement erst nach dem Zurückgeben des Rückrufs an das aufrufende Objekt zurückgegeben.

Gilt für

Invoke(Action, DispatcherPriority, CancellationToken, TimeSpan)

Führt die angegebene Action synchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken, TimeSpan timeout);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken * TimeSpan -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority, cancellationToken As CancellationToken, timeout As TimeSpan)

Parameter

callback
Action

Ein Aktionsstellvertretung, der über den Dispatcher aufgerufen werden soll.

priority
DispatcherPriority

Die Priorität, die die Reihenfolge bestimmt, in der der angegebene Rückruf relativ zu den anderen ausstehenden Vorgängen im Bereich Dispatcheraufgerufen wird.

cancellationToken
CancellationToken

Ein Objekt, das angibt, ob die Aktion abgebrochen werden kann.

timeout
TimeSpan

Die maximale Zeit, bis der Vorgang gestartet werden soll. Nachdem der Vorgang gestartet wurde, wird es abgeschlossen, bevor diese Methode zurückgegeben wird. Um eine unendliche Wartezeit anzugeben, verwenden Sie einen Wert von -1. In einem gleichen Threadaufruf wird jeder andere negative Wert in -1 konvertiert, was zu einer unendlichen Wartezeit führt. In einem Querthreadaufruf wird ein ArgumentOutOfRangeExceptionanderer negativer Wert ausgelöst.

Ausnahmen

callback ist null.

timeout ist eine negative Zahl außer -1, und diese Methode wurde über Threads aufgerufen.

priority ist keine gültige Priorität.

Gilt für

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.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, TimeSpan timeout, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, TimeSpan timeout, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * TimeSpan * Delegate -> obj
Public Function Invoke (priority As DispatcherPriority, timeout As TimeSpan, method As Delegate) As Object

Parameter

priority
DispatcherPriority

Die Priorität relativ zu den anderen ausstehenden Vorgängen in der Ereigniswarteschlange, mit der Dispatcher die angegebene Methode aufgerufen wird.

timeout
TimeSpan

Die maximale Zeit, bis der Vorgang gestartet werden soll. Nachdem der Vorgang gestartet wurde, wird es abgeschlossen, bevor diese Methode zurückgegeben wird. Um eine unendliche Wartezeit anzugeben, verwenden Sie einen Wert von -1. In einem gleichen Threadaufruf wird jeder andere negative Wert in -1 konvertiert, was zu einer unendlichen Wartezeit führt. In einem Querthreadaufruf wird ein ArgumentOutOfRangeExceptionanderer negativer Wert ausgelöst.

method
Delegate

Der Delegat zu einer Methode, die keine Argumente erwartet und in die Dispatcher-Ereigniswarteschlange gestellt wird.

Gibt zurück

Object

Der Rückgabewert des aufgerufenen Delegaten bzw. null, wenn der Delegat keinen Wert zurückgibt.

Attribute

Ausnahmen

method ist null.

timeout ist eine negative Zahl außer -1, und diese Methode wurde über Threads aufgerufen.

priority ist gleich Inactive.

priority ist keine gültige Priorität.

Hinweise

In WPF kann nur der Thread, der ein DispatcherObject Objekt erstellt hat, zugreifen. Beispielsweise kann ein Hintergrundthread, der aus dem Hauptoberflächenthread gedreht wird, den Inhalt eines Button auf dem UI-Thread erstellten Elements nicht aktualisieren. Damit der Hintergrundthread auf die Inhaltseigenschaft des ButtonInhalts zugreifen kann, muss der Hintergrundthread die Arbeit an den Dispatcher zugeordneten UI-Thread delegieren. Dies wird mithilfe von entweder Invoke oder BeginInvoke. Invoke ist synchron und BeginInvoke ist asynchron. Der Vorgang wird der Ereigniswarteschlange des Dispatcher angegebenen DispatcherPriorityHinzugefügt.

Invoke ist ein synchroner Vorgang; Daher wird das Steuerelement erst nach dem Zurückgeben des Rückrufs an das aufrufende Objekt zurückgegeben.

Gilt für

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.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method, System::Object ^ arg);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method, object arg);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate * obj -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate, arg As Object) As Object

Parameter

priority
DispatcherPriority

Die Priorität relativ zu den anderen ausstehenden Vorgängen in der Ereigniswarteschlange, mit der Dispatcher die angegebene Methode aufgerufen wird.

method
Delegate

Ein Delegat zu einer Methode, die ein Argument erwartet und in die Dispatcher-Ereigniswarteschlange gestellt wird.

arg
Object

Ein Objekt, das als Argument an die angegebene Methode übergeben werden soll.

Gibt zurück

Object

Der Rückgabewert des aufgerufenen Delegaten bzw. null, wenn der Delegat keinen Wert zurückgibt.

Attribute

Ausnahmen

priority ist gleich Inactive.

priority ist keine gültige Priorität.

method ist null.

Hinweise

arg kann sein null , wenn ein Argument nicht benötigt wird

In WPF kann nur der Thread, der ein DispatcherObject Objekt erstellt hat, zugreifen. Beispielsweise kann ein Hintergrundthread, der aus dem Hauptoberflächenthread gedreht wird, den Inhalt eines Button auf dem UI-Thread erstellten Elements nicht aktualisieren. Damit der Hintergrundthread auf die Inhaltseigenschaft des ButtonInhalts zugreifen kann, muss der Hintergrundthread die Arbeit an den Dispatcher zugeordneten UI-Thread delegieren. Dies wird mithilfe von entweder Invoke oder BeginInvoke. Invoke ist synchron und BeginInvoke ist asynchron. Der Vorgang wird der Ereigniswarteschlange des Dispatcher angegebenen DispatcherPriorityHinzugefügt.

Invoke ist ein synchroner Vorgang; Daher wird das Steuerelement erst nach dem Zurückgeben des Rückrufs an das aufrufende Objekt zurückgegeben.

Gilt für

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.

public:
 System::Object ^ Invoke(Delegate ^ method, TimeSpan timeout, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, TimeSpan timeout, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.Invoke : Delegate * TimeSpan * System.Windows.Threading.DispatcherPriority * obj[] -> obj
Public Function Invoke (method As Delegate, timeout As TimeSpan, priority As DispatcherPriority, ParamArray args As Object()) As Object

Parameter

method
Delegate

Ein Delegat für eine Methode, die in args angegebene Parameter akzeptiert und in die Dispatcher-Ereigniswarteschlange gestellt wird.

timeout
TimeSpan

Die maximale Zeit, bis der Vorgang gestartet werden soll. Nachdem der Vorgang gestartet wurde, wird es abgeschlossen, bevor diese Methode zurückgegeben wird. Um eine unendliche Wartezeit anzugeben, verwenden Sie einen Wert von -1. In einem gleichen Threadaufruf wird jeder andere negative Wert in -1 konvertiert, was zu einer unendlichen Wartezeit führt. In einem Querthreadaufruf wird ein ArgumentOutOfRangeExceptionanderer negativer Wert ausgelöst.

priority
DispatcherPriority

Die Priorität relativ zu den anderen ausstehenden Vorgängen in der Ereigniswarteschlange, mit der Dispatcher die angegebene Methode aufgerufen wird.

args
Object[]

Ein Array von Objekten, die als Argumente an die angegebene Methode übergeben werden sollen. Kann null sein.

Gibt zurück

Object

Der Rückgabewert des aufgerufenen Delegaten bzw. null, wenn der Delegat keinen Wert zurückgibt.

Ausnahmen

method ist null.

timeout ist eine negative Zahl außer -1, und diese Methode wurde über Threads aufgerufen.

priority ist gleich Inactive.

priority ist keine gültige Priorität.

Hinweise

In WPF kann nur der Thread, der ein DispatcherObject Objekt erstellt hat, zugreifen. Beispielsweise kann ein Hintergrundthread, der aus dem Hauptoberflächenthread gedreht wird, den Inhalt eines Button auf dem UI-Thread erstellten Elements nicht aktualisieren. Damit der Hintergrundthread auf die Inhaltseigenschaft des ButtonInhalts zugreifen kann, muss der Hintergrundthread die Arbeit an den Dispatcher zugeordneten UI-Thread delegieren. Dies wird mithilfe von entweder Invoke oder BeginInvoke. Invoke ist synchron und BeginInvoke ist asynchron. Der Vorgang wird der Ereigniswarteschlange des Dispatcher angegebenen DispatcherPriorityHinzugefügt.

Invoke ist ein synchroner Vorgang; Daher wird das Steuerelement erst nach dem Zurückgeben des Rückrufs an das aufrufende Objekt zurückgegeben.

Gilt für

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.

public:
 System::Object ^ Invoke(Delegate ^ method, TimeSpan timeout, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, TimeSpan timeout, params object[] args);
member this.Invoke : Delegate * TimeSpan * obj[] -> obj
Public Function Invoke (method As Delegate, timeout As TimeSpan, ParamArray args As Object()) As Object

Parameter

method
Delegate

Ein Delegat für eine Methode, die in args angegebene Parameter akzeptiert und in die Dispatcher-Ereigniswarteschlange gestellt wird.

timeout
TimeSpan

Die maximale Zeit, bis der Vorgang gestartet werden soll. Sobald der Vorgang gestartet wird, wird sie jedoch abgeschlossen, bevor diese Methode zurückgegeben wird. Um eine unendliche Wartezeit anzugeben, verwenden Sie einen Wert von -1. In einem gleichen Threadaufruf wird jeder andere negative Wert in -1 konvertiert, was zu einer unendlichen Wartezeit führt. In einem Querthreadaufruf wird ein ArgumentOutOfRangeExceptionanderer negativer Wert ausgelöst.

args
Object[]

Ein Array von Objekten, die als Argumente an die angegebene Methode übergeben werden sollen. Kann sein null , wenn keine Argumente benötigt werden.

Gibt zurück

Object

Der Rückgabewert des aufgerufenen Delegaten bzw. null, wenn der Delegat keinen Wert zurückgibt.

Ausnahmen

method ist null.

timeout ist eine negative Zahl außer -1, und Sie werden über Threads aufgerufen.

Hinweise

In WPF kann nur der Thread, der ein DispatcherObject Objekt erstellt hat, zugreifen. Beispielsweise kann ein Hintergrundthread, der aus dem Hauptoberflächenthread gedreht wird, den Inhalt eines Button auf dem UI-Thread erstellten Elements nicht aktualisieren. Damit der Hintergrundthread auf die Inhaltseigenschaft des ButtonInhalts zugreifen kann, muss der Hintergrundthread die Arbeit an den Dispatcher zugeordneten UI-Thread delegieren. Dies wird mithilfe von entweder Invoke oder BeginInvoke. Invoke ist synchron und BeginInvoke ist asynchron. Der Vorgang wird der Ereigniswarteschlange des Dispatcher angegebenen DispatcherPriorityHinzugefügt.

Invoke ist ein synchroner Vorgang; Daher wird das Steuerelement erst nach dem Zurückgeben des Rückrufs an das aufrufende Objekt zurückgegeben.

Gilt für

Invoke(Action, DispatcherPriority, CancellationToken)

Führt die angegebene Action synchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority, cancellationToken As CancellationToken)

Parameter

callback
Action

Ein Delegat, der über den Verteiler aufgerufen werden soll.

priority
DispatcherPriority

Die Priorität, die die Reihenfolge bestimmt, in der der angegebene Rückruf relativ zu den anderen ausstehenden Vorgängen im Bereich Dispatcheraufgerufen wird.

cancellationToken
CancellationToken

Ein Objekt, das angibt, ob die Aktion abgebrochen werden kann.

Gilt für

Invoke(DispatcherPriority, Delegate)

Führt den angegebenen Stellvertretung synchron an der angegebenen Priorität im Thread aus, mit dem die Dispatcher angegebene Stellvertretung verknüpft ist.

public:
 System::Object ^ Invoke(System::Windows::Threading::DispatcherPriority priority, Delegate ^ method);
[System.ComponentModel.Browsable(false)]
public object Invoke (System.Windows.Threading.DispatcherPriority priority, Delegate method);
[<System.ComponentModel.Browsable(false)>]
member this.Invoke : System.Windows.Threading.DispatcherPriority * Delegate -> obj
Public Function Invoke (priority As DispatcherPriority, method As Delegate) As Object

Parameter

priority
DispatcherPriority

Die Priorität, mit der die angegebene Methode aufgerufen wird, relativ zu den anderen ausstehenden Vorgängen in der Dispatcher Ereigniswarteschlange.

method
Delegate

Ein Delegat zu einer Methode, die keine Argumente erwartet und in die Dispatcher-Ereigniswarteschlange gestellt wird.

Gibt zurück

Object

Der Rückgabewert des aufgerufenen Delegaten bzw. null, wenn der Delegat keinen Wert zurückgibt.

Attribute

Ausnahmen

priority ist gleich Inactive.

priority ist keine gültige Priorität.

method ist null.

Beispiele

Im folgenden Beispiel wird ein Stellvertretung auf eine Dispatcher zu verwendende InvokeStelle platziertNormal.

// Places the delegate onto the UI Thread's Dispatcher
private void timer_Elapsed(object sender, ElapsedEventArgs e)
{
    // Place delegate on the Dispatcher.
    this.Dispatcher.Invoke(DispatcherPriority.Normal,
        new TimerDispatcherDelegate(TimerWorkItem));
}
' Places the delegate onto the UI Thread's Dispatcher
Private Sub timer_Elapsed(ByVal sender As Object, ByVal e As ElapsedEventArgs)
    ' Place delegate on the Dispatcher.
    Me.Dispatcher.Invoke(DispatcherPriority.Normal, New TimerDispatcherDelegate(AddressOf TimerWorkItem))
End Sub

Hinweise

In WPF kann nur der Thread, der ein DispatcherObject Objekt erstellt hat, zugreifen. Beispielsweise kann ein Hintergrundthread, der aus dem Hauptoberflächenthread gedreht wird, den Inhalt eines Button auf dem UI-Thread erstellten Elements nicht aktualisieren. Damit der Hintergrundthread auf die Inhaltseigenschaft des ButtonInhalts zugreifen kann, muss der Hintergrundthread die Arbeit an den Dispatcher zugeordneten UI-Thread delegieren. Dies wird mithilfe von entweder Invoke oder BeginInvoke. Invoke ist synchron und BeginInvoke ist asynchron. Der Vorgang wird der Ereigniswarteschlange des Dispatcher angegebenen DispatcherPriorityHinzugefügt.

Invoke ist ein synchroner Vorgang; Daher wird das Steuerelement erst nach dem Zurückgeben des Rückrufs an das aufrufende Objekt zurückgegeben.

Gilt für

Invoke(Delegate, Object[])

Führt den angegebenen Delegaten synchron mit den angegebenen Argumenten für den Thread aus, dem der Dispatcher zugeordnet ist.

public:
 System::Object ^ Invoke(Delegate ^ method, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, params object[] args);
member this.Invoke : Delegate * obj[] -> obj
Public Function Invoke (method As Delegate, ParamArray args As Object()) As Object

Parameter

method
Delegate

Ein Delegat für eine Methode, die in args angegebene Parameter akzeptiert und in die Dispatcher-Ereigniswarteschlange gestellt wird.

args
Object[]

Ein Array von Objekten, die als Argumente an die angegebene Methode übergeben werden sollen. Kann null sein.

Gibt zurück

Object

Der Rückgabewert des aufgerufenen Delegaten bzw. null, wenn der Delegat keinen Wert zurückgibt.

Hinweise

In WPF kann nur der Thread, der ein DispatcherObject Objekt erstellt hat, zugreifen. Beispielsweise kann ein Hintergrundthread, der aus dem Hauptoberflächenthread gedreht wird, den Inhalt eines Button auf dem UI-Thread erstellten Elements nicht aktualisieren. Damit der Hintergrundthread auf die Inhaltseigenschaft des ButtonInhalts zugreifen kann, muss der Hintergrundthread die Arbeit an den Dispatcher zugeordneten UI-Thread delegieren. Dies wird mithilfe von entweder Invoke oder BeginInvoke. Invoke ist synchron und BeginInvoke ist asynchron. Der Vorgang wird der Ereigniswarteschlange des Dispatcher angegebenen DispatcherPriorityHinzugefügt.

Invoke ist ein synchroner Vorgang; Daher wird das Steuerelement erst nach dem Zurückgeben des Rückrufs an das aufrufende Objekt zurückgegeben.

Gilt für

Invoke(Action, DispatcherPriority)

Führt die angegebene Action synchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.

public:
 void Invoke(Action ^ callback, System::Windows::Threading::DispatcherPriority priority);
public void Invoke (Action callback, System.Windows.Threading.DispatcherPriority priority);
member this.Invoke : Action * System.Windows.Threading.DispatcherPriority -> unit
Public Sub Invoke (callback As Action, priority As DispatcherPriority)

Parameter

callback
Action

Ein Delegat, der über den Verteiler aufgerufen werden soll.

priority
DispatcherPriority

Die Priorität, die die Reihenfolge bestimmt, in der der angegebene Rückruf relativ zu den anderen ausstehenden Vorgängen im Bereich Dispatcheraufgerufen wird.

Gilt für

Invoke(Action)

Führt die angegebene Action synchron auf dem Thread aus, dem der Dispatcher zugeordnet ist.

public:
 void Invoke(Action ^ callback);
public void Invoke (Action callback);
member this.Invoke : Action -> unit
Public Sub Invoke (callback As Action)

Parameter

callback
Action

Ein Delegat, der über den Verteiler aufgerufen werden soll.

Hinweise

Die Standardpriorität ist DispatcherPriority.Send.

Gilt für

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.

public:
 System::Object ^ Invoke(Delegate ^ method, System::Windows::Threading::DispatcherPriority priority, ... cli::array <System::Object ^> ^ args);
public object Invoke (Delegate method, System.Windows.Threading.DispatcherPriority priority, params object[] args);
member this.Invoke : Delegate * System.Windows.Threading.DispatcherPriority * obj[] -> obj
Public Function Invoke (method As Delegate, priority As DispatcherPriority, ParamArray args As Object()) As Object

Parameter

method
Delegate

Ein Delegat für eine Methode, die in args angegebene Parameter akzeptiert und in die Dispatcher-Ereigniswarteschlange gestellt wird.

priority
DispatcherPriority

Die Priorität, mit der die angegebene Methode aufgerufen wird, relativ zu den anderen ausstehenden Vorgängen in der Dispatcher Ereigniswarteschlange.

args
Object[]

Ein Array von Objekten, die als Argumente an die angegebene Methode übergeben werden sollen. Kann null sein.

Gibt zurück

Object

Der Rückgabewert des aufgerufenen Delegaten bzw. null, wenn der Delegat keinen Wert zurückgibt.

Hinweise

In WPF kann nur der Thread, der ein DispatcherObject Objekt erstellt hat, zugreifen. Beispielsweise kann ein Hintergrundthread, der aus dem Hauptoberflächenthread gedreht wird, den Inhalt eines Button auf dem UI-Thread erstellten Elements nicht aktualisieren. Damit der Hintergrundthread auf die Inhaltseigenschaft des ButtonInhalts zugreifen kann, muss der Hintergrundthread die Arbeit an den Dispatcher zugeordneten UI-Thread delegieren. Dies wird mithilfe von entweder Invoke oder BeginInvoke. Invoke ist synchron und BeginInvoke ist asynchron. Der Vorgang wird der Ereigniswarteschlange des Dispatcher angegebenen DispatcherPriorityHinzugefügt.

Invoke ist ein synchroner Vorgang; Daher wird das Steuerelement erst nach dem Zurückgeben des Rückrufs an das aufrufende Objekt zurückgegeben.

Gilt für

Invoke<TResult>(Func<TResult>)

Führt die angegebene Func<TResult> synchron auf dem Thread aus, dem der Dispatcher zugeordnet ist.

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback);
public TResult Invoke<TResult> (Func<TResult> callback);
member this.Invoke : Func<'Result> -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult)) As TResult

Typparameter

TResult

Der Rückgabewerts des angegebenen Delegaten.

Parameter

callback
Func<TResult>

Ein Delegat, der über den Verteiler aufgerufen werden soll.

Gibt zurück

TResult

Der von callback.

Gilt für

Invoke<TResult>(Func<TResult>, DispatcherPriority)

Führt die angegebene Func<TResult> synchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority) As TResult

Typparameter

TResult

Der Rückgabewerts des angegebenen Delegaten.

Parameter

callback
Func<TResult>

Ein Delegat, der über den Verteiler aufgerufen werden soll.

priority
DispatcherPriority

Die Priorität, die die Reihenfolge bestimmt, in der der angegebene Rückruf relativ zu den anderen ausstehenden Vorgängen in der Dispatcher.

Gibt zurück

TResult

Der von callback.

Gilt für

Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken)

Führt die angegebene Func<TResult> synchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority, cancellationToken As CancellationToken) As TResult

Typparameter

TResult

Der Rückgabewerts des angegebenen Delegaten.

Parameter

callback
Func<TResult>

Ein Delegat, der über den Verteiler aufgerufen werden soll.

priority
DispatcherPriority

Die Priorität, die die Reihenfolge bestimmt, in der der angegebene Rückruf relativ zu den anderen ausstehenden Vorgängen in der Dispatcher.

cancellationToken
CancellationToken

Ein Objekt, das angibt, ob der Vorgang abgebrochen werden kann.

Gibt zurück

TResult

Der von callback.

Gilt für

Invoke<TResult>(Func<TResult>, DispatcherPriority, CancellationToken, TimeSpan)

Führt die angegebene Func<TResult> synchron mit der angegebenen Priorität auf dem Thread aus, dem der Dispatcher zugeordnet ist.

public:
generic <typename TResult>
 TResult Invoke(Func<TResult> ^ callback, System::Windows::Threading::DispatcherPriority priority, System::Threading::CancellationToken cancellationToken, TimeSpan timeout);
public TResult Invoke<TResult> (Func<TResult> callback, System.Windows.Threading.DispatcherPriority priority, System.Threading.CancellationToken cancellationToken, TimeSpan timeout);
member this.Invoke : Func<'Result> * System.Windows.Threading.DispatcherPriority * System.Threading.CancellationToken * TimeSpan -> 'Result
Public Function Invoke(Of TResult) (callback As Func(Of TResult), priority As DispatcherPriority, cancellationToken As CancellationToken, timeout As TimeSpan) As TResult

Typparameter

TResult

Der Rückgabewerts des angegebenen Delegaten.

Parameter

callback
Func<TResult>

Ein Delegat, der über den Verteiler aufgerufen werden soll.

priority
DispatcherPriority

Die Priorität, die die Reihenfolge bestimmt, in der der angegebene Rückruf relativ zu den anderen ausstehenden Vorgängen in der Dispatcher.

cancellationToken
CancellationToken

Ein Objekt, das angibt, ob der Vorgang abgebrochen werden kann.

timeout
TimeSpan

Die maximale Zeit, bis der Vorgang gestartet werden soll. Sobald der Vorgang gestartet wurde, wird er abgeschlossen, bevor diese Methode zurückgegeben wird. Verwenden Sie zum Angeben einer unendlichen Wartezeit einen Wert von -1. In einem gleichen Threadaufruf wird jeder andere negative Wert in -1 konvertiert, was zu einer unendlichen Wartezeit führt. Bei einem Threadaufruf löst ein anderer negativer Wert einen ArgumentOutOfRangeException.

Gibt zurück

TResult

Der von callback.

Ausnahmen

callback ist null.

timeout ist eine andere negative Zahl als -1, und die Methode wurde über Threads aufgerufen.

priority ist keine gültige Priorität.

Gilt für