आप भाग्यशाली रहे हैं; Parallel.ForEach
किसी सूची को पॉप्युलेट करने के लिए थ्रेड-सुरक्षित नहीं है, अंततः आप समस्याओं में भाग लेंगे।
MSDN के अनुसार, List<T>
सुरक्षित थ्रेड नहीं है:
किसी भी उदाहरण सदस्यों की गारंटी नहीं है सुरक्षित थ्रेड किया जाना है।
एक सूची < टी > कई पाठकों को समवर्ती रूप से समर्थन दे सकती है, जब तक संग्रह संशोधित नहीं किया जाता है। संग्रह के माध्यम से गणना आंतरिक रूप से थ्रेड-सुरक्षित प्रक्रिया नहीं है। दुर्लभ मामले में जहां गणना एक या अधिक लेखन पहुंच के साथ होती है, का एकमात्र तरीका सुनिश्चित करें कि थ्रेड सुरक्षा पूरे गणना के दौरान संग्रह को लॉक करना है। संग्रह को पढ़ने और लिखने के लिए संग्रह को धागे द्वारा एक्सेस करने की अनुमति देने के लिए, आपको अपना सिंक्रनाइज़ेशन लागू करना होगा।
ConcurrentBag यह है कि आपको इसके लिए क्या उपयोग करना चाहिए, जो एकाधिक पाठकों और लेखकों के लिए थ्रेड-सुरक्षित है।
स्रोत
2011-08-25 16:13:36
कितने कोर/सीपीयू अपने विकास मशीन है? – ChaosPandion
दो प्रोसेसर। – abx78