Я немного запутался Parallel.ForEach
.
Что это такое Parallel.ForEach
и чем оно конкретно занимается?
Пожалуйста, не ссылайтесь ни на одну ссылку MSDN.
Вот простой пример:
string[] lines = File.ReadAllLines(txtProxyListPath.Text);
List<string> list_lines = new List<string>(lines);
foreach (string line in list_lines)
{
//My Stuff
}
Как я могу переписать этот пример с Parallel.ForEach
?
c#
multithreading
.net-4.0
parallel.foreach
SilverLight
источник
источник
Parallel
классом и использованием PLINQ.foreach
. Разница в том, что параллельная версия может выполнять много «действий» одновременно. В большинстве случаев (в зависимости от того, на каком компьютере выполняется код, насколько он загружен и т.д.) это будет быстрее, и это самое важное преимущество. Обратите внимание, что когда вы делаете это параллельно, вы не можете знать, в каком порядке обрабатываются элементы. С обычным (серийным)foreach
вам гарантировано, чтоlines[0]
будет первым, потомlines[1]
и так далее.Ответы:
источник
List<T>
;)Цикл по каждому элементу:
Parallel.ForEach:
Следующий пример ясно демонстрирует разницу между традиционным циклом foreach и
Пример Parallel.ForEach ()
Вывод
Используя пример Parallel.ForEach
источник
Это приведет к параллельному анализу строк в цикле. Если вы хотите более подробное, менее «ориентированное на ссылки» введение в класс Parallel, я написал серию статей по TPL, в которой есть раздел, посвященный Parallel.ForEach .
источник
Для больших файлов используйте следующий код (у вас меньше памяти)
источник
Эти строки работали для меня.
источник