का उपयोग करने का एक बेहतर तरीका क्या होगा मैंने अभी टीपीएल का उपयोग शुरू किया है, और मैं समानांतर में वेब सेवाओं पर कई कॉल करना चाहता हूं। जो मैं इकट्ठा कर सकता हूं, उससे मैं इसे करने के दो तरीके देखता हूं।कार्य समानांतर लाइब्रेरी
या तो Parallel.ForEach
:
List<ServiceMemberBase> list = new List<ServiceMemberBase>(); //Take list from somewhere.
Parallel.ForEach(list, member =>
{
var result = Proxy.Invoke(member);
//...
//Do stuff with the result
//...
});
या Task<T>
: अगर वाक्य रचना सही है या नहीं
List<ServiceMemberBase> list = new List<ServiceMemberBase>(); //Take list from somewhere.
ForEach(var member in list)
{
Task<MemberResult>.Factory.StartNew(() => proxy.Invoke(member));
}
//Wait for all tasks to finish.
//Process the result objects.
की अनदेखी, कर रहे हैं इन बराबर करने के लिए?
क्या वे एक ही परिणाम उत्पन्न करेंगे? यदि नहीं, क्यों? और कौन सा बेहतर है?
उत्तर के लिए धन्यवाद। मैं समांतर का उपयोग कर समाप्त हुआ। फॉरएच और हम अपने उत्पादन पर प्रतिक्रिया समय में लगभग 25% के सुधार को देखते हैं - 16 कोर मशीनें।मैं अनुमान लगा रहा हूं कि अधिकांश लाभ समांतर डेटा प्रोसेसिंग में है, न कि वेब सेवाओं के समानांतर कॉल में। –