В следующем цикле я хочу добавить логику, чтобы сказать, что если процессор 1 сделает это, если процессор 2 сделает то и т. д. Я пробовал различные свойства, такие как...
Console.WriteLine("Domain ID = " + Thread.GetDomainID().ToString());
Console.WriteLine("Thread ID = " + Thread.CurrentThread.ManagedThreadId.ToString());
... но я вижу, что идентификатор потока увеличивается и увеличивается, поэтому это поток, в котором много потоков к процессору. Итак, как получить 1-4 внутри цикла? DomainID я просто получаю то же значение
Parallel.ForEach(list.OrderBy(n => n.ScheduledBillingId),
new ParallelOptions { MaxDegreeOfParallelism = 4 }, (item) => { });
Моя проблема в том, что я хочу, чтобы это могло разделить записи в списке на 4 группы и обработать 1 с первыми 25% и так далее.
parallel.foreach
внутри кода asp.net - asp.net уже пытается использовать пул потоков для одновременной обработки нескольких запросов. - person Damien_The_Unbeliever   schedule 10.04.2017Parallel.ForEach
может оказаться неподходящим инструментом. Можете ли вы уточнить, что именно вам нужно и почему? Например, не могли бы вы показать, какой код вы бы написали, если бы у вас была искомая информация? - person Kevin Gosse   schedule 10.04.2017Parallel.For/Foreach
использует DOP для разделения. Почему тебя это волнует? Каждая задача выполняет ту же работу, что и любая другая. Вам совершенно все равно, на какой задаче обрабатывается запись - person Panagiotis Kanavos   schedule 10.04.2017