2016-03-30 10 views
2

iptal etti..Net zaman uyumsuz ForEach() temsilci atmak görevi ben C# kodu aşağıdakilere sahip istisna

Neden böyle oluyor?

+2

Bunu yapmayın: foreach

böylece örnek görünüyor gibi olağan olacaktır

Bu örnekte kullanmak gerekir. List.ForEach() 'eşzamansız değildir. Bunun nasıl yapılacağı hakkında daha fazla bilgi için [bu soru] bölümüne bakın (http://stackoverflow.com/questions/11564506/nesting-await-in-parallel-foreach). –

+2

Veya bu bir http://stackoverflow.com/questions/18667633/how-can-i-use-async-with-foreach – CompuChip

cevap

0

ForEach içindeki temsilci türü Action<T> ait Action<T>

Dönüş türüdür sizindir async item => await doSomething(item) lambda

async void doSomething(T item) çevirir anlamına gelir void olduğunu. ile async'un kullanılması, eşzamansız olarak çağrılacağı ve bir sonraki yineleme gerçekleşmeden önce beklenmeyeceği anlamına gelir.

async'u Task dönüş türüyle kullanmalısınız.

foreach(var item in list) 
{ 
    await doSomething(item); 
}