Ho una raccolta di 1000 messaggi di input da elaborare. Sto collegando la raccolta di input e avviando la nuova attività per ciascun messaggio per essere elaborata.Come limitare il numero massimo di attività parallele in C#
//Assume this messages collection contains 1000 items
var messages = new List<string>();
foreach (var msg in messages)
{
Task.Factory.StartNew(() =>
{
Process(msg);
});
}
Possiamo indovinare quanti messaggi massimo contemporaneamente ottenere elaborati al momento (supponendo normale microprocessore Quad), oppure possiamo limitare il numero massimo di messaggi da elaborare al momento?
Come garantire che questo messaggio venga elaborato nella stessa sequenza/ordine della raccolta?
Come dividere i messaggi in batch ed eseguire ogni batch in parallelo? – bit