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