Share via


create_async İşlevi (C++ REST SDK)

Kullanıcının sağladığı lambda veya işlev nesnesini temel alan bir Windows çalışma zamanı zaman uyumsuz yapısına oluşturur.Dönüş türünü create_async ya da biri IAsyncAction^, IAsyncActionWithProgress<TProgress>^, IAsyncOperation<TResult>^, veya IAsyncOperationWithProgress<TResult, TProgress>^ imzası yönteme geçirilen lambda öğesine göre.

Uyarı notuUyarı

Bu konu C++ REST SDK 1.0 (kod adı "Kasablanka") için bilgiler içerir.Öğesinden sonraki bir sürümünü kullanıyorsanız, Kasablanka Codeplex web sayfası, sonra yerel belgelerine kullanın http://casablanca.codeplex.com/documentation.

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

Parametreler

  • _Function

  • _Func
    Lambda veya işlev nesneden bir Windows çalışma zamanı zaman uyumsuz yapısına oluşturulacağı.

Dönüş Değeri

Bir IAsyncAction tarafından temsil edilen zaman uyumsuz bir yapı ^, IAsyncActionWithProgress < TProgress > ^, IAsyncOperation < TResult > ^, veya bir IAsyncOperationWithProgress < TResult, TProgress > ^.Döndürülen arabirimi işlevdeki geçen lambda imzası bağlıdır.

Notlar

Lambda dönüş türünü yapısının bir eylem veya bir işlem olup olmadığını belirler.

Void döndüren lambda Eylemler oluşturulmasına neden.Bir sonuç türü döndüren bir lambda TResult TResult işlemlerinin oluşturulmasını neden.

Lambda de döndürebilir bir task<TResult> , kendi içinde uyumsuz iş yalıtır ya da bir zaman uyumsuz iş temsil eden görevi zincirine süreklilik.Bu durumda, görevleri zaman uyumsuz olarak yürütür olanları olduğundan yürütülen satır içi, lambda olduğundan ve lambda dönüş türü tarafından döndürülen zaman uyumsuz yapısının üretmek için sarılmamış create_async.Bu görev < void > döndüren bir lambda Eylemler oluşturulmasına neden olur ve bir görev < TResult > döndüren bir lambda TResult işlemlerinin oluşturulmasını neden olacak anlamına gelir.

Lambda ya da sıfır, bir veya iki bağımsız değişken sürebilir.Geçerli bağımsız değişkenler progress_reporter<TProgress> ve cancellation_tokenbu sırası birlikte kullanılır.Bağımsız değişkenler olmadan bir lambda ilerleme durumunu raporlamak için yetenek olmadan zaman uyumsuz bir yapı oluşturulmasını neden olur.Bir progress_reporter < TProgress > alan bir lambda neden olur create_async , her zaman türü TProgress ilerlemeyi raporlar zaman uyumsuz bir yapı döndürülecek report progress_reporter nesnenin yöntemi çağrılır.Bir cancellation_token alan bir lambda iptalleri denetlemek için belirtecini kullanın veya oluşturur ve böylece iptal zaman uyumsuz yapısının bu görevlerin iptal neden olur görevlere geçirin.

Lambda veya işlev nesne gövdesi bir sonuç (ve değil bir görev < TResult >) döndürürse, bir görev çalışma zamanı bağlamında MTA örtülü olarak için oluşturur süreci içinde lamdba zaman uyumsuz olarak yürütülür.IAsyncInfo::Cancel Yöntemi örtük görev iptali neden olur.

Satır içi görev, lamba lambda döndürür gövdesi yürütür ve türünde bir bağımsız değişken yapılacak lambda bildirmek cancellation_token oluşturduğunuz lambda içinde oluşturduğunuz zaman içinde belirtecini geçirerek herhangi bir görev iptali tetikleyebilirsiniz.Ayrıca kullanabilir register_callback yöntemini çağırdığınızda bir geri çağırma çağırmak için bir çalışma zamanı neden için belirteci IAsyncInfo::Cancel üzerinde zaman uyumsuz işlem ya da eylem üretilen...

Bu işlev yalnızca Windows mağazası uygulamaları için kullanılabilir.

Gereksinimler

Üstbilgi: pplxtasks.h

Ad alanı: pplx

Ayrıca bkz.

Başvuru

pplx Ad Alanı

task Sınıfı

progress_reporter Sınıfı

Diğer Kaynaklar

cancelation_token Class