ParallelEnumerable
में एक स्थिर सदस्य AsParallel
है। अगर मेरे पास IEnumerable<T>
है और Parallel.ForEach
का उपयोग करना चाहते हैं तो यह दर्शाता है कि मुझे हमेशा AsParallel
का उपयोग करना चाहिए?समानांतर करता है। फोरेच के लिए AsParallel()
उदा। क्या ये दोनों सही हैं (बाकी सबकुछ बराबर है)?
AsParallel
बिना
:
List<string> list = new List<string>();
Parallel.ForEach<string>(GetFileList().Where(file => reader.Match(file)), f => list.Add(f));
या AsParallel
साथ?
List<string> list = new List<string>();
Parallel.ForEach<string>(GetFileList().Where(file => reader.Match(file)).AsParallel(), f => list.Add(f));
हममम ... वास्तव में क्या गणन parrallelizing है? या कम से कम उस समांतरता को कार्य प्रतिनिधिमंडल से अलग कैसे किया जा सकता है? – dkackman
@dkackman '.ssarallel()' समानांतर निष्पादन के लिए संख्या को तैयार करता है, विशेष रूप से इस मामले में 'चयन करें()' के समानांतर संस्करण। एक ऐसी गणना के बारे में सोचें जिसमें एक विशाल 'कहां' खंड है लेकिन कोई आदेश नहीं है, हम मूल्यांकन कर सकते हैं कि अगले कोर के साथ-साथ धारा को अगले उपलब्ध थ्रेड पर गणना करने के बाद जितना संभव हो सके, इसे लगभग 'n' बार तेज बना दिया जाए। हम उस परिणाम के साथ क्या करते हैं, उसी तरह बाद में, एक थ्रेड में सिंक्रनाइज़ रूप से या कोर के रूप में फैले हुए समेकित तरीके से भी संभाला जा सकता है, यह 'समांतर' फॉरएच 'या' फॉरएल 'भाग है, समझ में आता है? –
यह समझ में आता है। धन्यवाद निक। – dkackman