Control.InvokeAsync Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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
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
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).