Control.InvokeAsync Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przeciążenia
| Nazwa | Opis |
|---|---|
| InvokeAsync(Func<CancellationToken,ValueTask>, CancellationToken) |
Wykonuje określone asynchroniczne wywołanie zwrotne w wątku, który jest właścicielem uchwytu kontrolki asynchronicznie. |
| InvokeAsync(Action, CancellationToken) |
Wywołuje określony synchroniczny wywołanie zwrotne asynchronicznie w wątku, który jest właścicielem uchwytu kontrolki. |
| InvokeAsync<T>(Func<T>, CancellationToken) |
Wywołuje określony synchroniczny wywołanie zwrotne asynchronicznie w wątku, który jest właścicielem uchwytu kontrolki. |
| InvokeAsync<T>(Func<CancellationToken,ValueTask<T>>, CancellationToken) |
Wykonuje określone wywołanie asynchroniczne w wątku, który jest właścicielem uchwytu kontrolki. |
InvokeAsync(Func<CancellationToken,ValueTask>, CancellationToken)
- Źródło:
- Control.cs
- Źródło:
- Control.cs
- Źródło:
- Control.cs
Wykonuje określone asynchroniczne wywołanie zwrotne w wątku, który jest właścicielem uchwytu kontrolki asynchronicznie.
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
Parametry
- callback
- Func<CancellationToken,ValueTask>
Funkcja asynchroniczna do wykonania, która przyjmuje CancellationToken element i zwraca wartość ValueTask.
- cancellationToken
- CancellationToken
Token anulowania.
Zwraca
Zadanie reprezentujące operację wywołania asynchronicznego.
Wyjątki
Uchwyt kontrolki nie został jeszcze utworzony.
Uwagi
Wywołanie zwrotne zostanie schowane do wątku, który jest właścicielem uchwytu kontrolki, a następnie oczekuje. Wyjątki będą propagowane z powrotem do elementu wywołującego. Zwróć również uwagę, że zwrócone zadanie nie jest zadaniem skojarzonym z wywołaniem zwrotnym, ale zadaniem reprezentującym operację marshalingu wywołania zwrotnego do wątku interfejsu użytkownika. Jeśli musisz przekazać wywołanie zwrotne zwracające Task element zamiast ValueTask, użyj ValueTask(Task)konstruktora "s", aby utworzyć nowy ValueTask element, który opakowuje oryginalne zadanie. Element CancellationToken zostanie uwzględniony podczas łączenia wywołania zwrotnego z wątkiem, który jest właścicielem uchwytu kontrolki, oraz podczas wykonywania wywołania zwrotnego.
Jeśli chcesz asynchronicznie wykonać synchroniczne wywołanie zwrotne, użyj przeciążenia InvokeAsync<T>(Func<T>, CancellationToken) lub przeciążenia InvokeAsync(Action, CancellationToken).
Dotyczy
InvokeAsync(Action, CancellationToken)
- Źródło:
- Control.cs
- Źródło:
- Control.cs
- Źródło:
- Control.cs
Wywołuje określony synchroniczny wywołanie zwrotne asynchronicznie w wątku, który jest właścicielem uchwytu kontrolki.
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
Parametry
- callback
- Action
Akcja synchroniczna do wykonania.
- cancellationToken
- CancellationToken
Token anulowania.
Zwraca
Zadanie reprezentujące operację wywołania asynchronicznego.
Uwagi
Po przekazaniu CancellationToken metody do tej metody metoda zwróci wartość , ale wywołanie zwrotne będzie nadal wykonywane. Wywołanie zwrotne będzie uruchomione w wątku interfejsu użytkownika i będzie również blokować wątek interfejsu użytkownika.
InvokeAsync w tym przypadku jest po prostu kolejkowanie wywołania zwrotnego na końcu kolejki komunikatów i zwraca natychmiast, ale gdy tylko wywołanie zwrotne zostanie wykonane, nadal będzie blokować wątek interfejsu użytkownika przez czas jego działania. Z tego powodu zaleca się wykonywanie tylko krótkich operacji synchronizacji uruchomionych w wywołaniu zwrotnym, takich jak aktualizowanie właściwości kontrolki lub podobnej.
Jeśli chcesz wykonać długotrwałą operację, rozważ użycie wywołań zwrotnych asynchronicznych, upewniając się, że używasz przeciążenia InvokeAsync(Func<CancellationToken,ValueTask>, CancellationToken) lub InvokeAsync<T>(Func<CancellationToken,ValueTask<T>>, CancellationToken).
Dotyczy
InvokeAsync<T>(Func<T>, CancellationToken)
- Źródło:
- Control.cs
- Źródło:
- Control.cs
- Źródło:
- Control.cs
Wywołuje określony synchroniczny wywołanie zwrotne asynchronicznie w wątku, który jest właścicielem uchwytu kontrolki.
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)
Parametry typu
- T
Zwracany typ synchronicznego wywołania zwrotnego.
Parametry
- callback
- Func<T>
Funkcja synchroniczna do wykonania.
- cancellationToken
- CancellationToken
Token anulowania.
Zwraca
Zadanie reprezentujące operację i zawierające wynik funkcji.
Uwagi
Po przekazaniu CancellationToken metody do tej metody metoda zwróci wartość , ale wywołanie zwrotne będzie nadal wykonywane. Wywołanie zwrotne będzie uruchomione w wątku interfejsu użytkownika i będzie również blokować wątek interfejsu użytkownika. InvokeAsync w tym przypadku jest po prostu kolejkowanie wywołania zwrotnego na końcu kolejki komunikatów i zwraca natychmiast, ale gdy tylko wywołanie zwrotne jest wykonywane, nadal będzie blokować interfejs użytkownika przez czas jego działania. Z tego powodu zaleca się wykonywanie tylko krótkich operacji synchronizacji uruchomionych w wywołaniu zwrotnym, takich jak aktualizowanie właściwości kontrolki lub podobnej.
Jeśli chcesz wykonać długotrwałą operację, rozważ użycie asynchronicznych wywołań zwrotnych, które są używane z przeciążeniami opisanych InvokeAsync poniżej.
Ważne: Należy również pamiętać, że jeśli używasz tego przeciążenia do przekazywania wywołania zwrotnego, które zwraca Task , że to zadanie NIE będzie oczekiwane, ale zostanie zwrócone natychmiast i ma cechy "engage-and-forget". Jeśli chcesz, aby zadanie, które przekazujesz, było oczekiwane, upewnij się, że używasz przeciążenia InvokeAsync(Func<CancellationToken,ValueTask>, CancellationToken) lub InvokeAsync<T>(Func<CancellationToken,ValueTask<T>>, CancellationToken).
Dotyczy
InvokeAsync<T>(Func<CancellationToken,ValueTask<T>>, CancellationToken)
- Źródło:
- Control.cs
- Źródło:
- Control.cs
- Źródło:
- Control.cs
Wykonuje określone wywołanie asynchroniczne w wątku, który jest właścicielem uchwytu kontrolki.
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)
Parametry typu
- T
Zwracany typ wywołania zwrotnego asynchronicznego.
Parametry
- callback
- Func<CancellationToken,ValueTask<T>>
Funkcja asynchroniczna do wykonania, która przyjmuje CancellationToken element i zwraca wartość ValueTask<TResult>.
- cancellationToken
- CancellationToken
Token anulowania.
Zwraca
Zadanie reprezentujące operację i zawierające wynik funkcji typu T.
Wyjątki
Uchwyt kontrolki nie został jeszcze utworzony.
Uwagi
Wywołanie zwrotne zostanie schowane do wątku, który jest właścicielem uchwytu kontrolki, a następnie będzie oczekiwany. Wyjątki będą propagowane z powrotem do elementu wywołującego. Zwróć również uwagę, że zwrócone zadanie nie jest zadaniem skojarzonym z wywołaniem zwrotnym, ale zadaniem reprezentującym operację marshalingu wywołania zwrotnego do wątku interfejsu użytkownika. Jeśli musisz przekazać wywołanie zwrotne zwracające Task<TResult> element zamiast ValueTask<TResult>, użyj ValueTask<TResult>(Task<TResult>)konstruktora "s", aby utworzyć nowy ValueTask<TResult> element, który opakowuje oryginalne zadanie. Element CancellationToken zostanie uwzględniony podczas łączenia wywołania zwrotnego z wątkiem, który jest właścicielem uchwytu kontrolki, oraz podczas wykonywania wywołania zwrotnego.
Jeśli chcesz asynchronicznie wykonać synchroniczne wywołanie zwrotne, użyj przeciążenia InvokeAsync<T>(Func<T>, CancellationToken) lub przeciążenia InvokeAsync(Action, CancellationToken).