У меня есть список объектов, находящихся в списке. Этот список может иметь как минимум одно или целых 500 записей. У меня также есть поток, который принимает этот список как процесс этих объектов в последовательном порядке.C# многопоточный алгоритм параллелизма
Чтобы ускорить работу, мне нужно разбить этот список на несколько потоков для параллельной обработки и в то же время контролировать, сколько потоков работает одновременно.
Каков наилучший способ разделить этот список и передать меньшие списки в потоки для параллельной обработки и контролировать общее количество активных потоков?
['Parallel.ForEach'] (https://msdn.microsoft.com/en-us/library/dd460720%28v=vs.110%29.aspx) или [' Parallel.For'] (https: //msdn.microsoft.com/en-us/library/dd460713%28v=vs.110%29.aspx)? – cubrr
Как вы контролируете общее количество активных потоков? У вас есть примеры? – user1789782
В приведенных выше ссылках есть примеры. Вы можете контролировать [максимальное количество параллельных задач] (https://msdn.microsoft.com/en-us/library/system.threading.tasks.paralleloptions.maxdegreeofparallelism%28v=vs.110%29.aspx), используя [перегрузка] (https://msdn.microsoft.com/en-us/library/dd781401%28v=vs.110%29.aspx), которая позволяет вам передать экземпляр ['ParallelOptions'] (https://msdn.microsoft.com/en-us/library/system.threading.tasks.paralleloptions%28v=vs.110%29.aspx). – cubrr