2012-12-05 16 views
8

Async paketi .net 4.0'a yükledim. Bu bana uygulamalarda uyumsuz/beklemede anahtar kelimeler kullanma olanağı sunuyor.Async/task.run vs görev.run ve .NET 4.0 ile devam et

Şimdiye kadar anladığım kadarıyla, task.run kodumu asenkron/beklemede kullanabilir ve task.run ile sürekli olarak aynı sonucu elde edebilirim.

Bu doğru mu? ya da daha derin farklılıklar var mı?

cevap

11

ile yaptığınız şeye bağlıdır. Ancak evet, daha önce ContinueWith kullanarak elde ettiğiniz etkilerin aynısını elde etmek için await'u kullanabilirsiniz. 'un yapamazsınız, "bu kod yalnızca hata durumunda devam et" gibi şeylerdir - sadece bunun için normal istisna işlemlerini kullanırsınız. AlexH'nin dediği gibi, async yönteminizin genel davranışı açısından daha fazla farklılıklar olacaktır - ancak çoğu durumda arzu edilir olduğunu söyleyebilirim. Ben tavsiye ederim - Temel olarak, kod asenkroni akar, böylece zaman uyumsuz yöntemler Sana async/await ne hakkında olduğu kadar okumak önermek vb daha zaman uyumsuz yöntemleri çağırmak için

eğilimindedir (orada kaynakların bir sürü vardır bir başlangıç ​​noktası olarak MSDN üzerinde "Consuming the Task-based Asynchronous Pattern" sayfa, fonksiyonları prototipleri de zaman uyumsuz anahtar kelime tanıtmak eğer

4

bir fark var olacaktır;.. istisnalar Görev arayanın düzeyde atılacaktır zaman uyumsuz anahtar kelime olmadan, kontrol etmek zorunda istisna almak için TaskContinuationOptions.OnlyOnFaulted durumu