मैं समानांतर में एक धीमी webservice कॉल कर रहा हूँ। हालात तब तक महान थे जब तक मुझे एहसास हुआ कि मुझे सेवा से कुछ जानकारी वापस लेने की जरूरत है। लेकिन मुझे नहीं लगता कि मूल्यों को वापस कहां प्राप्त करें। मैं डेटाबेस में नहीं लिख सकता, HttpContext.Current समानांतर का उपयोग करने वाली विधि के अंदर शून्य दिखाई देता है। फोरेचमैं समानांतर से वापसी मूल्य कैसे एकत्र करूं? ForEach?
नीचे एक नमूना प्रोग्राम है (आपके दिमाग में, कृपया स्ट्रिंग कॉन्सटेनेशन की बजाय धीमी वेब सेवा की कल्पना करें)
using System;
using System.Threading.Tasks;
class Program
{
static void Main(string[] args)
{
WordMaker m = new WordMaker();
m.MakeIt();
}
public class WordMaker
{
public void MakeIt()
{
string[] words = { "ack", "ook" };
ParallelLoopResult result = Parallel.ForEach(words, word => AddB(word));
Console.WriteLine("Where did my results go?");
Console.ReadKey();
}
public string AddB(string word)
{
return "b" + word;
}
}
}
'Parallel.ForEach' का एक अलग अधिभार हो सकता है कि आप क्या चाहते: http://msdn.microsoft.com/en-us/library/ dd991486.aspx –
दुर्भाग्य से यह वास्तव में ऐसा कुछ नहीं है जिसे आप ऐसा कर सकते हैं। 'समानांतर। Foreach()' सिर्फ रिटर्न का ट्रैक रखने के लिए नहीं बनाया गया था। हालांकि, मैं आपके 'AddB' फ़ंक्शन में' रेफरी पैरामीटर 'का उपयोग करने का सुझाव दूंगा। ऐसा हो सकता है। –
@PhillipSchmidt: उदाहरण में प्रयुक्त अधिभार के साथ नहीं ... –