सी # में फ़ोरैच लूप एक ही थ्रेड पर चलता है और प्रसंस्करण क्रमिक रूप से एक-एक करके होता है। जबकि Parallel.Foreach लूप C# में कई थ्रेड्स पर चलता है और प्रोसेसिंग समानांतर तरीके से होती है। जिसका अर्थ है कि यह पिछले आइटम के पूरा होने की प्रतीक्षा किए बिना सभी आइटमों को एक साथ लूप कर रहा है।
Parallel.Foreach का निष्पादन सामान्य ForEach की तुलना में तेज़ है। Parallel.ForEach लूप का उपयोग करने के लिए हमें System.Threading.Tasks नेमस्पेस आयात करना होगा।
उदाहरण
सिस्टम का उपयोग करना; सिस्टम का उपयोग करना। संग्रह। जेनेरिक; सिस्टम का उपयोग करना। डायग्नोस्टिक्स; सिस्टम का उपयोग करना। सूची<स्ट्रिंग>{ "बिल्ली", "चूहा", "हिरण", "हाथी", "शेर", "बाघ", "कुत्ता", "सुअर", "भैंस", "खरगोश", "घोड़ा", " चीता", "गाय", "बकरी", "भेड़", "गधा", "ज़ेबरा", "भेड़िया", "लोमड़ी", "लेपर्ड", "बंदर", "कंगारू", "जिराफ़ी", "हिप्पो" }; वर स्टॉपवॉच =स्टॉपवॉच। स्टार्टन्यू (); foreach (जानवरों में स्ट्रिंग जानवर) {कंसोल। राइटलाइन ($ "फलों का नाम:{पशु}, थ्रेड आईडी ={थ्रेड। करंट थ्रेड। प्रबंधित थ्रेड आईडी}"); } Console.WriteLine($"foreach लूप निष्पादन समय ={stopWatch.Elapsed.TotalSeconds} सेकंड"); वर स्टॉपवॉच2 =स्टॉपवॉच.स्टार्टन्यू (); Parallel.ForEach(animals, Animal =>{ Console.WriteLine($"फलों का नाम:{animal}, Thread Id={Thread.CurrentThread.ManagedThreadId}"); }); Console.WriteLine($"समानांतर foreach लूप निष्पादन समय ={stopWatch2.Elapsed.TotalSeconds} सेकंड"); कंसोल। रीडलाइन (); } }}
आउटपुट
उपरोक्त कोड का आउटपुट है
फलों का नाम:बिल्ली, धागा आईडी =1फल का नाम:चूहा, धागा आईडी =1फल का नाम:हिरण, धागा आईडी =1फल का नाम:हाथी, धागा आईडी =1फल का नाम:शेर, धागा आईडी =1फल का नाम:बाघ, धागा आईडी =1फल का नाम:कुत्ता, धागा आईडी =1फल का नाम:सुअर, धागा आईडी =1फल का नाम:भैंस, धागा आईडी =1फल का नाम:खरगोश, धागा आईडी =1फल का नाम:घोड़ा, धागा आईडी =1फल का नाम:चीता, धागा आईडी =1फल नाम:गाय, धागा आईडी =1फल का नाम:बकरी, धागा आईडी =1फल का नाम:भेड़, धागा आईडी =1फल का नाम:गधा, धागा आईडी =1फल का नाम:ज़ेबरा, धागा आईडी =1फल का नाम:भेड़िया, धागा आईडी =1फल का नाम:लोमड़ी, धागा आईडी =1फल का नाम:तेंदुआ, धागा आईडी =1फल का नाम:बंदर, धागा आईडी =1फल का नाम:कंगारू, धागा आईडी =1फल का नाम:जिराफी, धागा आईडी =1फल का नाम:हिप्पो, धागा आईडी =1फॉरच लूप निष्पादन समय =0.0129221 सेकंड फल का नाम:बिल्ली, धागा आईडी =1 फल का नाम:चूहा, धागा आईडी =1 फल का नाम:हिरण, धागा आईडी =1 फल का नाम:हाथी, धागा आईडी =1 फल का नाम:शेर, धागा आईडी =1 फल का नाम:बाघ, धागा आईडी =1 फल नाम:सुअर, थ्रो ईड आईडी =1फल का नाम:भैंस, धागा आईडी =1फल का नाम:कुत्ता, धागा आईडी =3फल का नाम:भेड़, धागा आईडी =3फल का नाम:गधा, धागा आईडी =3फल का नाम:खरगोश, धागा आईडी =1फल का नाम:बकरी, धागा आईडी =5फल का नाम:लोमड़ी, धागा आईडी =5फल का नाम:तेंदुआ, धागा आईडी =5फल का नाम:गाय, धागा आईडी =4फल का नाम:हिप्पो, धागा आईडी =4फल का नाम:कंगारू, धागा आईडी =9फल का नाम:जिराफी, धागा आईडी =6फल नाम:बंदर, धागा आईडी =5फल का नाम:घोड़ा, धागा आईडी =1फल का नाम:चीता, धागा आईडी =1फल का नाम:ज़ेबरा, धागा आईडी =3फल का नाम:भेड़िया, धागा आईडी =3 समानांतर foreach लूप निष्पादन समय =0.0092988 सेकंड>उपरोक्त परिणाम से हम देख सकते हैं, Parallel.Foreach विभिन्न थ्रेड्स में निष्पादित होता है और सामान्य foreach की तुलना में कम समय लेता है।