2010-01-13 29 views
7

मैं कुछ कस्टम प्रदर्शन काउंटर बना रहा हूं। मैं थ्रेड पूल पर कार्यों का निर्माण करूँगा और कई कार्यकर्ता धागे के भीतर काउंटरों को बढ़ाना/घटाना होगा।प्रदर्शन काउंटर और थ्रेडिंग

क्या मुझे प्रत्येक धागे को एक नया काउंटर ऑब्जेक्ट देने की ज़रूरत है? क्या प्रदर्शन काउंटर ऑब्जेक्ट क्रॉस-थ्रेड (वृद्धि/कमी के लिए) साझा करना सुरक्षित है

उत्तर

6

प्रदर्शनकॉन्टर क्लास पहले से ही थ्रेडसेफ रैपर का उपयोग करता है, जिसे शेडवर्ड्सफॉर्मेंस काउंटर नामक एक आंतरिक श्रेणी है। उदाहरण के लिए काउंटर वैल्यू बढ़ाने के लिए यह Interlocked.Increment() का उपयोग करता है।

अपने आप को लॉक करने की कोई आवश्यकता नहीं है।

+1

याहू, मैंने वहां पर प्रतिबिंबित किया और देखा। फिर मैंने मदद पढ़ी, और यह पढ़ता है कि केवल स्थैतिक विधियां धागे सुरक्षित हैं। तो, मुझे लगता है कि अब मैं दार्शनिक दुविधा के साथ फंस गया हूं: चूंकि प्रलेखन सुरक्षा की गारंटी नहीं देता है, इसलिए क्या मैं वर्तमान रैपर को कार्यान्वयन के विवरण के रूप में मानना ​​चाहिए, इसे अनदेखा कर सकता हूं, और थ्रेड-विशिष्ट उदाहरण बना सकता हूं, या क्या मुझे इसका इलाज करना चाहिए एक दस्तावेज त्रुटि और साझा काउंटर के साथ आगे बढ़ें? जो कोड मैं देखता हूं उसे देखते हुए, मुझे लगता है कि मैं सुरक्षित हूं, लेकिन 15 साल की सॉफ्टवेयर इंजीनियरिंग ने मुझे छेड़छाड़ की है, इसलिए मैं रूढ़िवादी हो सकता हूं। – JMarsch

+0

यदि आप वारंटी के साथ गारंटी चाहते हैं तो आपको माइक्रोसॉफ्ट को कॉल करने की आवश्यकता होगी। –

+0

याहू, मुझे पता है, मैं यहां इसकी अपेक्षा नहीं कर रहा हूं। बस जो मैं सोच रहा हूं उसे सुन रहा हूं। – JMarsch

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