के लिए कार्य समांतर लाइब्रेरी मैं अपनी हार्ड ड्राइव पर एक निर्देशिका को पार करना चाहता हूं और एक विशिष्ट खोज स्ट्रिंग के लिए सभी फ़ाइलों के माध्यम से खोजना चाहता हूं। ऐसा कुछ ऐसा करने के लिए सही उम्मीदवार की तरह लगता है जो आईओ धीमा होने के बाद समानांतर में किया जा सकता है (या चाहिए)।निर्देशिका ट्रैवलल
परंपरागत रूप से, मैं वर्तमान निर्देशिका में सभी फ़ाइलों को खोजने और संसाधित करने के लिए एक पुनरावर्ती कार्य लिखूंगा और फिर उस निर्देशिका में सभी निर्देशिकाओं में पुन: कार्य करूंगा। मैं सोच रहा हूं कि मैं इसे और समानांतर होने के लिए कैसे संशोधित कर सकता हूं। पहले तो मैं बस संशोधित:
foreach (string directory in directories) { ... }
Parallel.ForEach(directories, (directory) => { ... })
के लिए, लेकिन मुझे लगता है कि यह भी कई कार्य बनाने और खुद को समुद्री मील में मिल सकता है, खासकर जब वापस एक यूआई धागा पर प्रेषण करने के लिए कोशिश कर रहा। मुझे यह भी लगता है कि कार्यों की संख्या अप्रत्याशित है और यह इस कार्य को लंबित करने का एक प्रभावी तरीका नहीं है (क्या यह एक शब्द है?)।
क्या किसी ने सफलतापूर्वक ऐसा कुछ किया है? ऐसा करने में आपके पास क्या सलाह है?
+1 मुझे खुशी है जॉन पर 16 सीपीयू बाध्य धागे चलाने का प्रयास सिद्धांत को दूर कर दिया क्योंकि मैं भी सोच रहा था कि यह एक अच्छा उम्मीदवार होगा। ऐसा लगता है कि माइक्रोसॉफ्ट इसे सही तरीके से भी नहीं कर सकता है: http://msdn.microsoft.com/en-us/library/ff477033.aspx -> नीचे टिप्पणी पढ़ें :) –