Control.InvokeAsync Methode

Definitie

Overloads

Name Description
InvokeAsync(Func<CancellationToken,ValueTask>, CancellationToken)

Hiermee wordt de opgegeven asynchrone callback uitgevoerd op de thread die eigenaar is van de handle asynchroon van het besturingselement.

InvokeAsync(Action, CancellationToken)

Roept de opgegeven synchrone callback asynchroon aan op de thread die eigenaar is van de ingang van het besturingselement.

InvokeAsync<T>(Func<T>, CancellationToken)

Roept de opgegeven synchrone callback asynchroon aan op de thread die eigenaar is van de ingang van het besturingselement.

InvokeAsync<T>(Func<CancellationToken,ValueTask<T>>, CancellationToken)

Hiermee wordt de opgegeven asynchrone callback uitgevoerd op de thread die eigenaar is van de ingang van het besturingselement.

InvokeAsync(Func<CancellationToken,ValueTask>, CancellationToken)

Bron:
Control.cs
Bron:
Control.cs
Bron:
Control.cs

Hiermee wordt de opgegeven asynchrone callback uitgevoerd op de thread die eigenaar is van de handle asynchroon van het besturingselement.

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

Parameters

callback
Func<CancellationToken,ValueTask>

De asynchrone functie die moet worden uitgevoerd, die een CancellationToken en retourneert.ValueTask

cancellationToken
CancellationToken

Het annuleringstoken.

Retouren

Een taak die de asynchrone aanroepbewerking vertegenwoordigt.

Uitzonderingen

De ingang van het besturingselement is nog niet gemaakt.

Opmerkingen

De callback wordt ge marshalld naar de thread die eigenaar is van de ingang van het besturingselement en wacht vervolgens op. Uitzonderingen worden weer doorgegeven aan de aanroeper. Houd er ook rekening mee dat de geretourneerde taak niet de taak is die is gekoppeld aan de callback, maar een taak die de werking vertegenwoordigt van het marshallen van de callback naar de UI-thread. Als u een callback moet doorgeven die een Task in plaats van een ValueTaskretour retourneert, gebruikt u de constructor van de ValueTask(Task)'s om een nieuwe ValueTask te maken die de oorspronkelijke taak verpakt. Bij CancellationToken het marshallen van de callback naar de thread die eigenaar is van de ingang van het besturingselement en bij het uitvoeren van de callback, wordt rekening gehouden met beide.

Als u asynchroon een synchrone callback wilt uitvoeren, gebruikt u de overbelasting of de overbelasting InvokeAsync<T>(Func<T>, CancellationToken)InvokeAsync(Action, CancellationToken).

Van toepassing op

InvokeAsync(Action, CancellationToken)

Bron:
Control.cs
Bron:
Control.cs
Bron:
Control.cs

Roept de opgegeven synchrone callback asynchroon aan op de thread die eigenaar is van de ingang van het besturingselement.

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

Parameters

callback
Action

De synchrone actie die moet worden uitgevoerd.

cancellationToken
CancellationToken

Het annuleringstoken.

Retouren

Een taak die de asynchrone aanroepbewerking vertegenwoordigt.

Opmerkingen

Wanneer u een CancellationToken aan deze methode doorgeeft, wordt de methode geretourneerd, maar wordt de callback nog steeds uitgevoerd. De callback wordt uitgevoerd op de UI-thread en blokkeert ook de UI-thread. InvokeAsync In dit geval wordt de callback naar het einde van de berichtenwachtrij in de wachtrij geplaatst en onmiddellijk geretourneerd, maar zodra de callback wordt uitgevoerd, wordt de UI-thread nog steeds geblokkeerd voor de tijd dat deze wordt uitgevoerd. Daarom is het raadzaam om alleen korte synchronisatiebewerkingen uit te voeren in de callback, zoals het bijwerken van de eigenschap van een besturingselement of vergelijkbaar.

Als u een langlopende bewerking wilt uitvoeren, kunt u in plaats daarvan asynchrone callbacks gebruiken door ervoor te zorgen dat u de overbelasting InvokeAsync(Func<CancellationToken,ValueTask>, CancellationToken) of InvokeAsync<T>(Func<CancellationToken,ValueTask<T>>, CancellationToken).

Van toepassing op

InvokeAsync<T>(Func<T>, CancellationToken)

Bron:
Control.cs
Bron:
Control.cs
Bron:
Control.cs

Roept de opgegeven synchrone callback asynchroon aan op de thread die eigenaar is van de ingang van het besturingselement.

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)

Type parameters

T

Het retourtype van de synchrone callback.

Parameters

callback
Func<T>

De synchrone functie die moet worden uitgevoerd.

cancellationToken
CancellationToken

Het annuleringstoken.

Retouren

Task<T>

Een taak die de bewerking vertegenwoordigt en het resultaat van de functie bevat.

Opmerkingen

Wanneer u een CancellationToken aan deze methode doorgeeft, wordt de methode geretourneerd, maar wordt de callback nog steeds uitgevoerd. De callback wordt uitgevoerd op de UI-thread en blokkeert ook de UI-thread. InvokeAsync in dit geval maakt gewoon een wachtrij van de callback naar het einde van de berichtenwachtrij en wordt onmiddellijk geretourneerd, maar zodra de callback wordt uitgevoerd, wordt de gebruikersinterface nog steeds geblokkeerd voor de tijd dat deze wordt uitgevoerd. Daarom is het raadzaam om alleen korte synchronisatiebewerkingen uit te voeren in de callback, zoals het bijwerken van de eigenschap van een besturingselement of vergelijkbaar.

Als u een langlopende bewerking wilt uitvoeren, kunt u in plaats daarvan asynchrone callbacks gebruiken, die u gebruikt met de overbelastingen van InvokeAsync hieronder beschreven.

Belangrijk: Houd er ook rekening mee dat als u deze overbelasting gebruikt om een callback door te geven die retourneert dat Task deze taak niet onmiddellijk wordt gewacht, maar onmiddellijk wordt geretourneerd en de kenmerken heeft van een 'engage-and-forget'. Als u wilt dat de taak die u doorgeeft, moet u ervoor zorgen dat u de overbelasting InvokeAsync(Func<CancellationToken,ValueTask>, CancellationToken) of InvokeAsync<T>(Func<CancellationToken,ValueTask<T>>, CancellationToken).

Van toepassing op

InvokeAsync<T>(Func<CancellationToken,ValueTask<T>>, CancellationToken)

Bron:
Control.cs
Bron:
Control.cs
Bron:
Control.cs

Hiermee wordt de opgegeven asynchrone callback uitgevoerd op de thread die eigenaar is van de ingang van het besturingselement.

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)

Type parameters

T

Het retourtype van de asynchrone callback.

Parameters

callback
Func<CancellationToken,ValueTask<T>>

De asynchrone functie die moet worden uitgevoerd, die een CancellationToken en retourneert.ValueTask<TResult>

cancellationToken
CancellationToken

Het annuleringstoken.

Retouren

Task<T>

Een taak die de bewerking vertegenwoordigt en het resultaat van de functie van het type bevat T.

Uitzonderingen

De ingang van het besturingselement is nog niet gemaakt.

Opmerkingen

De callback wordt ge marshalld naar de thread die eigenaar is van de ingang van het besturingselement en wordt vervolgens gewacht. Uitzonderingen worden weer doorgegeven aan de aanroeper. Houd er ook rekening mee dat de geretourneerde taak niet de taak is die is gekoppeld aan de callback, maar een taak die de werking vertegenwoordigt van het marshallen van de callback naar de UI-thread. Als u een callback moet doorgeven die een Task<TResult> in plaats van een ValueTask<TResult>retour retourneert, gebruikt u de constructor van de ValueTask<TResult>(Task<TResult>)'s om een nieuwe ValueTask<TResult> te maken die de oorspronkelijke taak verpakt. Bij CancellationToken het marshallen van de callback naar de thread die eigenaar is van de ingang van het besturingselement en bij het uitvoeren van de callback, wordt rekening gehouden met beide.

Als u asynchroon een synchrone callback wilt uitvoeren, gebruikt u de overbelasting of de overbelasting InvokeAsync<T>(Func<T>, CancellationToken)InvokeAsync(Action, CancellationToken).

Van toepassing op