Отправляет email-рассылки с помощью сервиса Sendsay

За 2018-12-28

[prg] Re: Равзвести цикл на потоки

Vande omentaina, Кирилл!

К> Есть большая текстовая база. Ищу в ней циклом:

Я бы на вашем месте использовал Parallel.ForEach в сочетании с
ReadLines.
Дока с похожим примером:
https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/how-to-write-a-simple-parallel-foreach-loop

В вашем случае лямбдочка должна выглядеть как-то так:
// WARNING! Untested code, use only for reference!
Parallel.ForEach(reader, (line => {
if (line.Contains(textBox1.Text))
listBox1.Items.Add(line);
}
});

   2018-12-28 13:13:05 (#3598760)

[prg] Равзвести цикл на потоки

Привет уважаемому собранию.

C#, VS2017.

Есть большая текстовая база. Ищу в ней циклом:

string line;
while ((line = reader.ReadLine()) != null)
{
if (line.Contains(textBox1.Text) == true)
listBox1.Items.Add(line);
}

Как видно из нагрузки на процессор, поиск идёт на единственном ядре.
Можно как-то распределить эту задачу равномерно по всем ядрам/потокам?
Ядер у меня 6, потоков 12.

   2018-12-28 07:16:19 (#3598716)