2012-05-11 11 views
20

Uygulamayı birim sınama için oluşturulan bir C# sınıf ile ilgili bir sorun yaşıyorum, özellikle konu bir System.Threading.Tasks.Task nesnenin etrafında.RunSynchronously zaten başlatılmış olan görev çağrılabilir değil

Bu tür nesnelerin bir listesi var ve üzerlerinde her birini eşzamanlı olarak yürütmek istiyorum.

myTask.RunSynchronously(); 

Böyle yapmak

, hep aşağıdaki hatayı alıyorum ve ben bunu düzeltmek nasıl neden bilmiyorum:

aşağıdaki diyoruz.

System.InvalidOperationException: RunSynchronously zaten başlatılmış olan görev çağrılabilir değil.

Herhangi bir fikri olan var mı? Yani, hatta görevi başlıyor yöntemin adına var -

O çoktan başladı
+1

Eğer TaskFactory.StartNew 'ile görev oluşturmak mü() '? – Tejs

+0

@Tejs evet bu doğru – amateur

cevap

28

kullanın. StartNew görevi oluşturur ve sizin adınıza Start numaralı telefonu arar. İsterseniz @Peter Ritchie dediğim gibi = D

, ya görevde Wait, ya da şöyle elle görev oluşturabilirsiniz edebilirsiniz:

var task = new Task(() => { ... }); 
task.RunSynchronously(); 
24

, sadece sorun TaskFactory.StartNew Aradığınızda görevi başladı olmasıdır myTask.Wait()

İlgili konular