C # Как можно разделить поток на несколько потоков для эффективного использования процессора? - PullRequest
0 голосов
/ 04 ноября 2019

В C # у меня есть функция, которая делает что-то со многими строковыми строками, которые я хочу разделить на потоки. Например, 1000 строк на один поток. Следовательно, как можно разделить поток на несколько потоков для эффективного использования ЦП?

1 Ответ

1 голос
/ 04 ноября 2019

Parallel.Foreach позволяет разделить работу из IEnumerable на несколько параллельных частей, и вы можете контролировать максимальное количество потоков, которые могут обрабатывать это перечисление.

Parallel.ForEach(
    stringLines,
    new ParallelOptions { MaxDegreeOfParallelism = 42 },
    line=> { DoWork(line); }
);
...