Как ограничить максимальное количество параллельных задач в C#C#

Место общения программистов C#
Ответить
Anonymous
 Как ограничить максимальное количество параллельных задач в C#

Сообщение Anonymous »

У меня есть коллекция из 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»