TPL'yi bir while döngüsünde kullanmaya çalışıyorum ve sonra da döngüye dönüşen bazı değerlere geçmem gerekiyor. endeks değeri olabilir, çünküBir döngü içinde görevlerin başlatılması: döngü içinde değiştirilebilecek değerler nasıl iletilir?
int index = 0;
Task[] tasks;
while(/*condition*/)
{
tasks[index] = Task.Factory.StartNew(() => DoJob(index));
index++;
}
Ama tabii çalışmıyor: Örneğin, burada o (mutlaka görev oluşturma talep edildiği satırdan sonra) artırılır bir dizin ile bir örnek gösterilmektedir Görev başlamadan önce artar. Olası bir çözüm de, endeksi artırmadan önce beklemek ve DoJob yöntemine işaret edilmek zorunda olan bir WaitHandle geçmek olabilir, ama bana gerçekten iyi bir çözüm gibi görünmüyor. Başka bir fikrin var mı?
refactor her zaman bu kadar basit olmayabilir, fakat her zaman mümkün olabilir - iç içe döngülerden ayrılmayın:] –