में एसिंक तरीके से 5000 संदेश भेजना मुझे 10000 संदेश भेजना है। फिलहाल, यह तुल्यकालिक रूप से होता है और उन्हें सभी भेजने के लिए 20 मिनट तक लगते हैं।सी #
// sending messages in a sync way
foreach (var message in messages)
{
var result = Send(message);
_logger.Info($"Successfully sent {message.Title}.")
}
संदेश भेजने समय को छोटा करने के लिए, मैं async का उपयोग करें और इंतजार करना चाहते हैं, लेकिन मेरी चिंता का विषय है अगर सी # क्रम वर्कर प्रोसेस में कार्यों की 15000 संख्या को संभाल कर सकते हैं।
var tasks = new List<Task>();
foreach (var message in messages)
{
tasks.Add(Task.Run(() => Send(message))
}
var t = Task.WhenAll(tasks);
t.Wait();
...
इसके अलावा, स्मृति के मामले में, मैं नहीं यकीन है कि अगर यह एक अच्छा विचार है 15000 कार्यों
टीपीएल एक थ्रेड पूल का उपयोग करता है और प्रत्येक 'कार्य। रुन()' के लिए एक नया धागा नहीं उड़ाएगा। – Loris156
बस इसे चलाएं और देखें कि यह – Evk
कैसे जाता है यदि प्रेषण विधि समानांतर में काम कर सकती है तो यह केवल समय कम करेगी। –