Control.InvokeAsync Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überlädt
| Name | Beschreibung |
|---|---|
| InvokeAsync(Func<CancellationToken,ValueTask>, CancellationToken) |
Führt den angegebenen asynchronen Rückruf im Thread aus, der das Handle des Steuerelements asynchron besitzt. |
| InvokeAsync(Action, CancellationToken) |
Ruft den angegebenen synchronen Rückruf asynchron für den Thread auf, der das Handle des Steuerelements besitzt. |
| InvokeAsync<T>(Func<T>, CancellationToken) |
Ruft den angegebenen synchronen Rückruf asynchron für den Thread auf, der das Handle des Steuerelements besitzt. |
| InvokeAsync<T>(Func<CancellationToken,ValueTask<T>>, CancellationToken) |
Führt den angegebenen asynchronen Rückruf im Thread aus, der das Handle des Steuerelements besitzt. |
InvokeAsync(Func<CancellationToken,ValueTask>, CancellationToken)
- Quelle:
- Control.cs
- Quelle:
- Control.cs
- Quelle:
- Control.cs
Führt den angegebenen asynchronen Rückruf im Thread aus, der das Handle des Steuerelements asynchron besitzt.
public System.Threading.Tasks.Task InvokeAsync(Func<System.Threading.CancellationToken,System.Threading.Tasks.ValueTask> callback, System.Threading.CancellationToken cancellationToken = default);
member this.InvokeAsync : Func<System.Threading.CancellationToken, System.Threading.Tasks.ValueTask> * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Function InvokeAsync (callback As Func(Of CancellationToken, ValueTask), Optional cancellationToken As CancellationToken = Nothing) As Task
Parameter
- callback
- Func<CancellationToken,ValueTask>
Die auszuführende asynchrone Funktion, die eine CancellationToken und zurückgibt ValueTask.
- cancellationToken
- CancellationToken
Das Abbruchtoken.
Gibt zurück
Eine Aufgabe, die den asynchronen Aufrufvorgang darstellt.
Ausnahmen
Der Steuerpunkt des Steuerelements wurde noch nicht erstellt.
Hinweise
Der Rückruf wird an den Thread ge marshallt, der das Handle des Steuerelements besitzt, und anschließend erwartet. Ausnahmen werden an den Aufrufer zurückverbreitet. Beachten Sie außerdem, dass die zurückgegebene Aufgabe nicht die dem Rückruf zugeordnete Aufgabe ist, sondern eine Aufgabe, die den Vorgang zum Marshallen des Rückrufs im UI-Thread darstellt. Wenn Sie einen Rückruf übergeben müssen, der anstelle eines TaskValueTaskRückrufs zurückgibt, verwenden Sie den ValueTask(Task)Konstruktor 's, um eine neue ValueTask zu erstellen, die die ursprüngliche Aufgabe umschließt. Dies CancellationToken wird beim Marshalling des Rückrufs an den Thread berücksichtigt, der das Handle des Steuerelements besitzt, und beim Ausführen des Rückrufs.
Wenn Sie einen synchronen Rückruf asynchron ausführen möchten, verwenden Sie die Überladung oder die Überladung InvokeAsync<T>(Func<T>, CancellationToken)InvokeAsync(Action, CancellationToken).
Gilt für:
InvokeAsync(Action, CancellationToken)
- Quelle:
- Control.cs
- Quelle:
- Control.cs
- Quelle:
- Control.cs
Ruft den angegebenen synchronen Rückruf asynchron für den Thread auf, der das Handle des Steuerelements besitzt.
public System.Threading.Tasks.Task InvokeAsync(Action callback, System.Threading.CancellationToken cancellationToken = default);
member this.InvokeAsync : Action * System.Threading.CancellationToken -> System.Threading.Tasks.Task
Public Function InvokeAsync (callback As Action, Optional cancellationToken As CancellationToken = Nothing) As Task
Parameter
- callback
- Action
Die auszuführende synchrone Aktion.
- cancellationToken
- CancellationToken
Das Abbruchtoken.
Gibt zurück
Eine Aufgabe, die den asynchronen Aufrufvorgang darstellt.
Hinweise
Wenn Sie eine CancellationToken an diese Methode übergeben, wird die Methode zurückgegeben, aber der Rückruf wird weiterhin ausgeführt. Der Rückruf wird im UI-Thread ausgeführt und blockiert auch den UI-Thread.
InvokeAsync In diesem Fall wird nur der Rückruf am Ende der Nachrichtenwarteschlange in die Warteschlange gestellt und sofort zurückgegeben, aber sobald der Rückruf ausgeführt wird, wird der UI-Thread für die Ausführung weiterhin blockiert. Aus diesem Grund wird empfohlen, nur kurze Synchronisierungsvorgänge im Rückruf auszuführen, z. B. das Aktualisieren der Eigenschaft eines Steuerelements oder ähnlich.
Wenn Sie einen lang ausgeführten Vorgang ausführen möchten, sollten Sie stattdessen asynchrone Rückrufe verwenden, indem Sie sicherstellen, dass Sie entweder die Überladung oder InvokeAsync(Func<CancellationToken,ValueTask>, CancellationToken)die Überladung InvokeAsync<T>(Func<CancellationToken,ValueTask<T>>, CancellationToken) verwenden.
Gilt für:
InvokeAsync<T>(Func<T>, CancellationToken)
- Quelle:
- Control.cs
- Quelle:
- Control.cs
- Quelle:
- Control.cs
Ruft den angegebenen synchronen Rückruf asynchron für den Thread auf, der das Handle des Steuerelements besitzt.
public System.Threading.Tasks.Task<T> InvokeAsync<T>(Func<T> callback, System.Threading.CancellationToken cancellationToken = default);
member this.InvokeAsync : Func<'T> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'T>
Public Function InvokeAsync(Of T) (callback As Func(Of T), Optional cancellationToken As CancellationToken = Nothing) As Task(Of T)
Typparameter
- T
Der Rückgabetyp des synchronen Rückrufs.
Parameter
- callback
- Func<T>
Die synchrone Funktion, die ausgeführt werden soll.
- cancellationToken
- CancellationToken
Das Abbruchtoken.
Gibt zurück
Eine Aufgabe, die den Vorgang darstellt und das Ergebnis der Funktion enthält.
Hinweise
Wenn Sie eine CancellationToken an diese Methode übergeben, wird die Methode zurückgegeben, aber der Rückruf wird weiterhin ausgeführt. Der Rückruf wird im UI-Thread ausgeführt und blockiert auch den UI-Thread. InvokeAsync in diesem Fall stellt einfach das Beenden des Rückrufs an das Ende der Nachrichtenwarteschlange und gibt sofort zurück, aber sobald der Rückruf ausgeführt wird, wird die Benutzeroberfläche für die Ausführung weiterhin blockiert. Aus diesem Grund wird empfohlen, nur kurze Synchronisierungsvorgänge im Rückruf auszuführen, z. B. das Aktualisieren der Eigenschaft eines Steuerelements oder ähnlich.
Wenn Sie einen lang ausgeführten Vorgang ausführen möchten, sollten Sie stattdessen asynchrone Rückrufe verwenden, die Sie mit den unten beschriebenen Überladungen InvokeAsync verwenden.
Wichtig: Beachten Sie außerdem, dass, wenn Sie diese Überladung verwenden, um einen Rückruf zu übergeben, der eine Task zurückgibt, die diese Aufgabe nicht erwartet, sondern sofort zurückgegeben wird und die Merkmale eines "engagement-and-forget"-Elements aufweist. Wenn Sie möchten, dass die Aufgabe, die Sie warten, warten soll, stellen Sie sicher, dass Sie entweder die Überladung oder InvokeAsync(Func<CancellationToken,ValueTask>, CancellationToken)die Überladung InvokeAsync<T>(Func<CancellationToken,ValueTask<T>>, CancellationToken) verwenden.
Gilt für:
InvokeAsync<T>(Func<CancellationToken,ValueTask<T>>, CancellationToken)
- Quelle:
- Control.cs
- Quelle:
- Control.cs
- Quelle:
- Control.cs
Führt den angegebenen asynchronen Rückruf im Thread aus, der das Handle des Steuerelements besitzt.
public System.Threading.Tasks.Task<T> InvokeAsync<T>(Func<System.Threading.CancellationToken,System.Threading.Tasks.ValueTask<T>> callback, System.Threading.CancellationToken cancellationToken = default);
member this.InvokeAsync : Func<System.Threading.CancellationToken, System.Threading.Tasks.ValueTask<'T>> * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'T>
Public Function InvokeAsync(Of T) (callback As Func(Of CancellationToken, ValueTask(Of T)), Optional cancellationToken As CancellationToken = Nothing) As Task(Of T)
Typparameter
- T
Der Rückgabetyp des asynchronen Rückrufs.
Parameter
- callback
- Func<CancellationToken,ValueTask<T>>
Die auszuführende asynchrone Funktion, die eine CancellationToken und zurückgibt ValueTask<TResult>.
- cancellationToken
- CancellationToken
Das Abbruchtoken.
Gibt zurück
Eine Aufgabe, die den Vorgang darstellt und das Ergebnis der Funktion vom Typ Tenthält.
Ausnahmen
Der Steuerpunkt des Steuerelements wurde noch nicht erstellt.
Hinweise
Der Rückruf wird an den Thread ge marshallt, der das Handle des Steuerelements besitzt, und dann erwartet. Ausnahmen werden an den Aufrufer zurückverbreitet. Beachten Sie außerdem, dass die zurückgegebene Aufgabe nicht die dem Rückruf zugeordnete Aufgabe ist, sondern eine Aufgabe, die den Vorgang zum Marshallen des Rückrufs im UI-Thread darstellt. Wenn Sie einen Rückruf übergeben müssen, der anstelle eines Task<TResult>ValueTask<TResult>Rückrufs zurückgibt, verwenden Sie den ValueTask<TResult>(Task<TResult>)Konstruktor 's, um eine neue ValueTask<TResult> zu erstellen, die die ursprüngliche Aufgabe umschließt. Dies CancellationToken wird beim Marshalling des Rückrufs an den Thread berücksichtigt, der das Handle des Steuerelements besitzt, und beim Ausführen des Rückrufs.
Wenn Sie einen synchronen Rückruf asynchron ausführen möchten, verwenden Sie die Überladung oder die Überladung InvokeAsync<T>(Func<T>, CancellationToken)InvokeAsync(Action, CancellationToken).