मैं सुरक्षित नीचे कोडसूची <T> धागा सुरक्षा
var processed = new List<Guid>();
Parallel.ForEach(items, item =>
{
processed.Add(SomeProcessingFunc(item));
});
उपयोग कर रहा हूँ ऊपर कोड धागा है? क्या संसाधित सूची दूषित होने का मौका है? या मुझे जोड़ने से पहले लॉक का उपयोग करना चाहिए?
var processed = new List<Guid>();
Parallel.ForEach(items, item =>
{
lock(items.SyncRoot)
processed.Add(SomeProcessingFunc(item));
});
धन्यवाद।
की ConcurrentBag आप MSDN पर देखने गए थे? यहां: http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx#c9721fa0-1cd9-4a21-818c-98d164c9fc14 –
देखें http://stackoverflow.com/questions/4779165/parallel-foreach-loop -odd-व्यवहार। – mellamokb
@ मार्टिन्हो: हाँ। मैंने पढ़ा है कि सूची धागा सुरक्षित नहीं है। लेकिन मैं यह समझने में असमर्थ हूं कि सूची में एकाधिक धागे जोड़ रहे हैं, भले ही वह सूची को दूषित कैसे कर सके। –
stackoverflowuser