Control.InvokeAsync Metódus

Definíció

Túlterhelések

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

Végrehajtja a megadott aszinkron visszahívást azon a szálon, amely a vezérlő leíróját aszinkron módon birtokolja.

InvokeAsync(Action, CancellationToken)

A megadott szinkron visszahívást aszinkron módon hívja meg azon a szálon, amely a vezérlő fogópontját birtokolja.

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

A megadott szinkron visszahívást aszinkron módon hívja meg azon a szálon, amely a vezérlő fogópontját birtokolja.

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

Végrehajtja a megadott aszinkron visszahívást azon a szálon, amely a vezérlő leíróját birtokolja.

InvokeAsync(Func<CancellationToken,ValueTask>, CancellationToken)

Forrás:
Control.cs
Forrás:
Control.cs
Forrás:
Control.cs

Végrehajtja a megadott aszinkron visszahívást azon a szálon, amely a vezérlő leíróját aszinkron módon birtokolja.

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

Paraméterek

callback
Func<CancellationToken,ValueTask>

A végrehajtandó aszinkron függvény, amely egy CancellationToken értéket vesz fel, és visszaad egy ValueTask.

cancellationToken
CancellationToken

A lemondási jogkivonat.

Válaszok

Az aszinkron meghívási műveletet képviselő feladat.

Kivételek

A vezérlő leírója még nincs létrehozva.

Megjegyzések

A visszahívás a vezérlő fogópontját tartalmazó szálhoz lesz rendezve, majd várva. A kivételek vissza lesznek propagálása a hívónak. Azt is vegye figyelembe, hogy a visszaadott tevékenység nem a visszahíváshoz társított feladat, hanem egy olyan feladat, amely a visszahívás felhasználói felületi szálra való rendeződésének műveletét jelöli. Ha visszahívást kell átadnia, amely nem egy, hanem egy Task visszahívást ValueTaskad vissza, a ValueTask(Task)konstruktor segítségével hozzon létre egy újat ValueTask , amely az eredeti feladatot burkolja. A CancellationToken visszahívásnak a vezérlő leíróját tartalmazó szálra történő beállításakor és a visszahívás végrehajtásakor egyaránt figyelembe veszi a rendszer.

Ha szinkron visszahívást szeretne aszinkron módon végrehajtani, használja a túlterhelést vagy a túlterhelést InvokeAsync<T>(Func<T>, CancellationToken)InvokeAsync(Action, CancellationToken).

A következőre érvényes:

InvokeAsync(Action, CancellationToken)

Forrás:
Control.cs
Forrás:
Control.cs
Forrás:
Control.cs

A megadott szinkron visszahívást aszinkron módon hívja meg azon a szálon, amely a vezérlő fogópontját birtokolja.

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

Paraméterek

callback
Action

A végrehajtandó szinkron művelet.

cancellationToken
CancellationToken

A lemondási jogkivonat.

Válaszok

Az aszinkron meghívási műveletet képviselő feladat.

Megjegyzések

Amikor átadja CancellationToken ezt a metódust, a metódus vissza fog térni, de a visszahívás továbbra is végrehajtásra kerül. A visszahívás a felhasználói felületi szálon fog futni, és a felhasználói felület szálát is blokkolja. InvokeAsync ebben az esetben a visszahívást az üzenetsor végére állítja, és azonnal visszatér, de amint a visszahívás végrehajtásra kerül, a felhasználói felület szála továbbra is blokkolva lesz a futtatás idejére. Ezért javasoljuk, hogy csak rövid szinkronizálási futtatási műveleteket hajtson végre a visszahívásban, például egy vezérlő tulajdonságának frissítését vagy hasonlót.

Ha hosszú ideig futó műveletet szeretne végrehajtani, fontolja meg inkább az aszinkron visszahívások használatát, és győződjön meg arról, hogy a túlterhelést vagy InvokeAsync<T>(Func<CancellationToken,ValueTask<T>>, CancellationToken)a .InvokeAsync(Func<CancellationToken,ValueTask>, CancellationToken)

A következőre érvényes:

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

Forrás:
Control.cs
Forrás:
Control.cs
Forrás:
Control.cs

A megadott szinkron visszahívást aszinkron módon hívja meg azon a szálon, amely a vezérlő fogópontját birtokolja.

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)

Típusparaméterek

T

A szinkron visszahívás visszatérési típusa.

Paraméterek

callback
Func<T>

A végrehajtandó szinkron függvény.

cancellationToken
CancellationToken

A lemondási jogkivonat.

Válaszok

Task<T>

A műveletet jelképező és a függvény eredményét tartalmazó feladat.

Megjegyzések

Amikor átadja CancellationToken ezt a metódust, a metódus vissza fog térni, de a visszahívás továbbra is végrehajtásra kerül. A visszahívás a felhasználói felületi szálon fog futni, és a felhasználói felület szálát is blokkolja. Az InvokeAsync ebben az esetben csak az üzenetsor végére állítja a visszahívást, és azonnal visszatér, de a visszahívás végrehajtása után továbbra is letiltja a felhasználói felületet a futtatás idejére. Ezért javasoljuk, hogy csak rövid szinkronizálási futtatási műveleteket hajtson végre a visszahívásban, például egy vezérlő tulajdonságának frissítését vagy hasonlót.

Ha hosszú ideig futó műveletet szeretne végrehajtani, fontolja meg inkább az aszinkron visszahívások használatát, amelyeket az alább ismertetett túlterhelésekkel InvokeAsync használ.

Fontos: Azt is vegye figyelembe, hogy ha ezt a túlterhelést használja egy visszahívás átadásához, amely azt adja vissza Task , hogy ez a feladat NEM vár, hanem azonnal visszatér, és a "be- és elfelejtés" jellemzőivel rendelkezik. Ha azt szeretné, hogy a feladat, amelyet átad, várjon, ügyeljen arra, hogy a túlterhelést vagy InvokeAsync<T>(Func<CancellationToken,ValueTask<T>>, CancellationToken)a .InvokeAsync(Func<CancellationToken,ValueTask>, CancellationToken)

A következőre érvényes:

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

Forrás:
Control.cs
Forrás:
Control.cs
Forrás:
Control.cs

Végrehajtja a megadott aszinkron visszahívást azon a szálon, amely a vezérlő leíróját birtokolja.

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)

Típusparaméterek

T

Az aszinkron visszahívás visszatérési típusa.

Paraméterek

callback
Func<CancellationToken,ValueTask<T>>

A végrehajtandó aszinkron függvény, amely egy CancellationToken értéket vesz fel, és visszaad egy ValueTask<TResult>.

cancellationToken
CancellationToken

A lemondási jogkivonat.

Válaszok

Task<T>

A műveletet jelképező és a függvény típusának Teredményét tartalmazó feladat.

Kivételek

A vezérlő leírója még nincs létrehozva.

Megjegyzések

A visszahívás a vezérlő fogópontját tartalmazó szálhoz lesz rendezve, majd várva lesz. A kivételek vissza lesznek propagálása a hívónak. Azt is vegye figyelembe, hogy a visszaadott tevékenység nem a visszahíváshoz társított feladat, hanem egy olyan feladat, amely a visszahívás felhasználói felületi szálra való rendeződésének műveletét jelöli. Ha visszahívást kell átadnia, amely nem egy, hanem egy Task<TResult> visszahívást ValueTask<TResult>ad vissza, a ValueTask<TResult>(Task<TResult>)konstruktor segítségével hozzon létre egy újat ValueTask<TResult> , amely az eredeti feladatot burkolja. A CancellationToken visszahívásnak a vezérlő leíróját tartalmazó szálra történő beállításakor és a visszahívás végrehajtásakor egyaránt figyelembe veszi a rendszer.

Ha szinkron visszahívást szeretne aszinkron módon végrehajtani, használja a túlterhelést vagy a túlterhelést InvokeAsync<T>(Func<T>, CancellationToken)InvokeAsync(Action, CancellationToken).

A következőre érvényes: