2009-03-25 22 views
6

मैं पृष्ठभूमि कार्यकर्ता उपयोग कर रहा हूँ एक महंगी आपरेशन करने के लिए की तुलना में पुन: उपयोग BackgroundWorker अधिक:एक बार

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

मैं अब एक और महंगा ऑपरेशन है: अंत में

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

मैं इस किया है। क्या मैं इसी पृष्ठभूमि कार्यकर्ता का पुन: उपयोग कर सकता हूं। मैं अब नए कॉलबैक चाहते हैं मुझे नहीं निर्धारित करने के लिए करता है, तो मैं कर रहा हूँ आपरेशन 1 या 2

यह सिर्फ सरल 2 अलग पृष्ठभूमि कार्यकर्ता कक्षाएं

उत्तर

14

हाँ उपयोग करने के लिए है ProgressChanged और DoWork कॉलबैक पर स्विच बयान चाहते हैं, आप BackgroundWorker का पुन: उपयोग कर सकते हैं - लेकिन आप इसे किसी भी समय एक बार उपयोग कर सकते हैं - समवर्ती रूप से नहीं। यदि ऑपरेशन अलग हैं, हालांकि, मैं एक अलग कार्यकर्ता का उपयोग करता हूं। अन्यथा आपको घटनाओं को अनदेखा करना होगा, सही घटनाओं को हुक करना होगा, इस्सी।