जैसा कि आप समांतर की अनुक्रमणिका का अनुमान लगा सकते हैं।() लूप एक मान से दूसरी तरफ कूदता है। मैं काम की मात्रा का अनुमान कैसे लगा सकता हूं?समानांतर में प्रगति अद्यतन।() लूप
धन्यवाद।
जैसा कि आप समांतर की अनुक्रमणिका का अनुमान लगा सकते हैं।() लूप एक मान से दूसरी तरफ कूदता है। मैं काम की मात्रा का अनुमान कैसे लगा सकता हूं?समानांतर में प्रगति अद्यतन।() लूप
धन्यवाद।
एक काउंटर रखने के बजाय सूचकांक को देख कर है? उदाहरण के लिए:
int counter = 0;
Parallel.For(4, 500, i => {
// TODO: something useful...
int progress = Interlocked.Increment(ref counter);
Console.WriteLine("{0}: {1}", progress, i);
});
int progress = 0;
Parallel.For(from, to, i => {
// do the job
Interlocked.Increment(ref progress);
});
अब वास्तविक प्रगति (float)(to - from)/progress
कोई रास्ता नहीं धागा तुल्यकालन के साथ हस्तक्षेप किए बिना इस मूल्य प्राप्त करने के (Interlocked
उपयोग counter
तक पहुँचने पर हो रही दौड़-स्थिति से बचने के लिए आवश्यक है)? –
abenci
@devdept संख्या। लेकिन इस विधि का उपयोग करने में समस्या क्या है? – Andrey
मैंने सोचा कि समांतर। के लिए() इस मूल्य को पाने के लिए एक और अधिक शानदार तरीका शामिल है। – abenci
और [यहां] (https://gist.github.com/0xorial/8b82594e8f2b96beae77) वही लपेटा हुआ है। – ironic