पृष्ठभूमिवर्कर ऑब्जेक्ट हमें DoWorkEventHandler में एक भी तर्क पारित करने की अनुमति देता है।पृष्ठभूमिवर्कर के लिए वैकल्पिक जो एक से अधिक तर्क स्वीकार करता है?
// setup/init:
BackgroundWorker endCallWorker = new BackgroundWorker();
endCallWorker.DoWork += new DoWorkEventHandler(EndCallWorker_DoWork);
...
endCallWorker.RunWorkerAsync(userName);
// the handler:
private void EndCallWorker_DoWork(object sender, DoWorkEventArgs e)
{
string userName = e.Argument as string;
...
}
कई तर्क पारित करने के लिए, मैं, एक वस्तु में उन्हें लपेटो चाहिए इस गरीब स्ट्रिंग सरणी की तरह:
// setup/init:
BackgroundWorker startCallWorker = new BackgroundWorker();
startCallWorker.DoWork += new DoWorkEventHandler(StartCallWorker_DoWork);
...
startCallWorker.RunWorkerAsync(new string[]{userName, targetNumber});
// the handler:
private void StartCallWorker_DoWork(object sender, DoWorkEventArgs e)
{
string[] args = e.Argument as string[];
string userName = args[0];
string targetNumber = args[1];
}
वहाँ किसी अन्य वस्तु या पैटर्न हमें कई तर्क अच्छी तरह से, या आदर्श पारित की अनुमति देता है, अपना हस्ताक्षर लिखें?
रखती बनाएँ? (विशेष रूप से "(एस, ई)" ... वे क्यों घोषित किए गए हैं?) –
मुझे यह बहुत पसंद है - मेरे उपयोग के मामले में, यह बहुत अच्छा काम करता है, लेकिन अधिक जटिल ऐप्स में समस्याएं हो सकती हैं, यानी मुझे पैरामीटर तक पहुंच की आवश्यकता है सेटअप/init पर मान (उपयोगकर्ता नाम और targetNumber)। –
मदद करने में खुशी हुई (और कुछ और पाठ)। –