Udostępnij za pośrednictwem


Funkcja create_async

Tworzy obsługi Windows konstrukcja asynchronicznego na podstawie obiektu lambda podanych przez użytkownika funkcji.Zwracany typ create_async jest jednym z albo IAsyncAction^, IAsyncActionWithProgress<TProgress>^, IAsyncOperation<TResult>^, lub IAsyncOperationWithProgress<TResult, TProgress>^ na podstawie podpisu lambda, przekazany do metody.

template<
   typename _Function
>
auto create_async(
   const _Function& _Func
) -> decltype(ref new details::_AsyncTaskGeneratorThunk<_Function>(_Func));

Parametry

  • _Function

  • _Func
    Obiekt lambda lub funkcji z których można utworzyć konstrukcja asynchronicznego Runtime w systemie Windows.

Wartość zwracana

Asynchroniczne konstrukcji, reprezentowane przez IAsyncAction ^, IAsyncActionWithProgress <TProgress> ^, IAsyncOperation <TResult> ^, lub IAsyncOperationWithProgress < TResult, TProgress > ^.Interfejs zwracane zależy od podpisu lambda, przekazany do funkcji.

Uwagi

Zwracany typ lambda Określa, czy konstrukcja jest akcja lub operacji.

Lambdas, które zwracają void powodują tworzenie akcji.Lambdas, które zwracają wynik typu TResult powodują utworzenie operacji TResult.

Lambda może również zwracać task<TResult> która hermetyzuje pracy aysnchronous w siebie lub kontynuacji łańcucha zadań, które reprezentują asynchroniczne.W tym przypadku lambda, sam jest wykonywany w tekście, ponieważ zadania są tymi, które asynchronicznie i zwracany typ lambda jest jako niezapakowany produkować asynchronicznego konstrukcja zwrócony przez create_async.Oznacza to, że lambda, która zwraca zadania <void> powoduje tworzenie działań i lambda, które zwraca zadania <TResult> spowoduje utworzenie operacji TResult.

Lambda może podjąć albo zero, jeden lub dwa argumenty.Prawidłowe argumenty są progress_reporter<TProgress> i cancellation_token, w tym kolejności, jeśli oba są używane.Lambda bez argumentów powoduje tworzenie konstrukcji asynchronicznych, bez możliwości raportowania postępu.Lambda, który ma progress_reporter <TProgress> spowoduje, że create_async do zwracania asynchronicznego konstrukcja, która postępu typu TProgress przy każdym report wywoływana jest metoda obiektu progress_reporter.Lambda, który ma cancellation_token może używać token w celu sprawdzenia anulowania lub przekazać je do zadań, które tworzy się tak, aby anulowania asynchronicznego konstrukcja powoduje anulowanie tych zadań.

Jeśli treść obiektu lambda lub funkcja zwraca wynik (a nie zadania <TResult>), lamdba będzie wykonywane asynchronicznie wewnątrz procesu, który MTA w kontekście zadań Runtime niejawnie tworzy go.IAsyncInfo::Cancel Metoda spowoduje anulowanie zadania niejawne.

Jeżeli organ zwraca lambda zadanie, lamba wykonuje wbudowane i oświadczając lambda podjęcie argumentu typu cancellation_token może wyzwolić anulowania żadnych zadań, tworzenie w ramach lambda przekazując token w podczas ich tworzenia.Można także użyć register_callback tokenu spowodować Runtime do wywołania zwrotnego podczas wywołania metody IAsyncInfo::Cancel na async wyprodukowane operacji lub działania.

Ta funkcja jest tylko dostępne aplikacje styl metra.

Wymagania

Nagłówek: ppltasks.h

Obszar nazw: współbieżności

Zobacz też

Informacje

Współbieżność obszaru nazw

Klasa zadania

Klasa progress_reporter

Inne zasoby

cancelation_token Class