Task
s zincirini zincirlemek istiyorum, ardından zinciri paralel olarak başlatın. Beni boş yöntem () => { }
ilk devir yapmış sevmez içZincir için uygun yol Görevler
var taskOrig = new Task(() => { });
var task = taskOrig;
foreach (var msg in messages)
{
task=task.ContinueWith(t => Console.WriteLine(msg));
}
taskOrig.Start();
Her şey biraz mükemmeliyetçi dışında çalışıyor: Bu parçacık sadece sorumu göstermektir.
Bundan kaçınmanın bir yolu var mı?
Anladığım kadarıyla Performansı zorlukla etkiliyor (gerçekten sık sık yapmadığınız sürece), ama yine de. Benim durumumdaki performans önemlidir, bu yüzden her yinelemede görev var olup olmadığını kontrol etmek bunu yapmanın yolu değildir. Bunu yapmanın
"Performans hususlar: Bir örnek kullanım olacağını
:
Diğer bir seçenek böyle bir şey kullanmak olacaktır Bunu yapmanın yolu. ": Görev süresinin gerçekte yürütülmesiyle kıyaslandığında göz ardı edilebilir. Bir performans isabetini gerçekten ölçmediyseniz, bu kesinlikle bir erken optimizasyon olgusudur. –
@ThomasLevesque muhtemelen haklısınız, belki de 'Görev' API oluşturma bir şey özledim düşündüm. Performansı daha sonra ölçmek için bir şansım olacak. – Anri
TPL DataFlow'ı ilginç bir şekilde bulabilirsiniz – sll