kez

2009-03-25 29 views
6

i pahalı bir işlem yapmak için arka plan işçisi kullanıyorum daha backgroundworker daha yeniden:kez

void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) 
{ 
    Messagebox.Show("Done with expensive operation 1"}; 
} 

Şimdi başka pahalı ameliyat olmak:

backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork); 
backgroundWorker1.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged); 
backgroundWorker1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker1_RunWorkerCompleted); 
backgroundWorker1.RunWorkerAsync(inputs); 

Sonunda ben bu var. Aynı arka plan çalışanını tekrar kullanabilir miyim? i operasyonu 1 veya 2.

sadece basit 2 ayrı arkaplan işçi sınıfları

cevap

14

Evet kullanmak mı yapıyorum olmadığını belirlemek için ProgressChanged ve DoWork Httpserversockethandler anahtar ifadeleri istemiyorum gibi ben şimdi yeni geri aramalar istiyorsun, BackgroundWorker'u yeniden kullanabilir - ancak aynı anda sadece bir kez kullanabilirsiniz - aynı anda değil. Ancak operasyonlar farklıysa, ayrı bir işçi kullanırdım. Aksi takdirde, olayları çözmeniz, doğru etkinlikleri, vb.