У меня есть коллекция из 1000 входных сообщений для обработки. Я зациклирую коллекцию ввода и начинаю новую задачу, чтобы каждое сообщение обрабатывалось.
//Assume this messages collection contains 1000 items
var messages = new List<string>();
foreach (var msg in messages)
{
Task.Factory.StartNew(() =>
{
Process(msg);
});
}
Можем ли мы догадаться, сколько максимальных сообщений одновременно обрабатывается в то время (при условии нормального четырехъядерного процессора), или мы можем ограничить максимальное количество сообщений, которые будут обрабатываться в то время?
Как обеспечить, чтобы это сообщение обрабатывалось в той же последовательности/порядке коллекции?