2013-05-27 8 views
6

ReportProgress विधि 2 पैरामीटर में लेती है। एक इंटेल है और एक उपयोगकर्ता का राज्य है। मैं कुछ प्रक्रिया उद्देश्यों के लिए विधि में कुछ स्ट्रिंग पैरामीटर पास कर रहा हूं और int की आवश्यकता नहीं है।पृष्ठभूमि कार्यकर्ता रिपोर्ट प्रगति विधि

क्या ReportProgress([randomInt], "MyString") के साथ रिपोर्ट प्रगति विधि को कॉल करने के लिए अनावश्यकता के बिना पहले int को पारित करने का कोई तरीका है? बस कोड सफाई उद्देश्यों के लिए।

+1

नहीं, जम्मू: तो फिर तुम क्या करते हो निम्नलिखित में सक्षम (जब तक पैरामीटर किसी पूर्णांक, अन्यथा सामान्य ReportProgress(int) बुलाया जाएगा नहीं है) हो जाएगा ust पास 0. या यदि आप चाहें तो 'डमी प्रोग्रेस' नामक एक कॉन्स। :) –

+1

क्या ओवरराइड विधि की तरह बनाने का कोई तरीका है? यह "बेकार पैरामीटर" चीज मुझे थोड़ा चिपका रहा है =) –

+0

हाहा ठीक है मुझे एक सेकंड दें। :) –

उत्तर

4

साथ ReportProgress फोन करेगा तुम इतनी तरह BackgroundWorker के लिए एक विस्तार विधि बना सकते हैं लिखें:

public static class BackgroundWorkerExt 
{ 
    public static void ReportProgress(this BackgroundWorker self, object state) 
    { 
     const int DUMMY_PROGRESS = 0; 
     self.ReportProgress(DUMMY_PROGRESS, state); 
    } 
} 

_backgroundWorker.ReportProgress("Test"); 
1

आप एक विस्तार विधि है जो पहले पैरामीटर खाल बना सकते हैं

+0

आप एक विस्तार विधि कैसे बनाएंगे? –

2

ReportProgress विधि, किसी पूर्णांक लेने के लिए के बाद से यह ProgressChanged घटना है, जो एक पैरामीटर है उठाती है की जरूरत है (बस 0 के साथ वास्तविक विधि कॉल) ProgressChangedEventArgs, जो बदले में एक संपत्ति ProgressPercentage है।

सीधे शब्दों में विधि करने के लिए 0 से पारित या, के रूप में RobSiklos पता चलता है, एक विस्तार विधि है कि एक 0.

संबंधित मुद्दे