Как обработать кучу записей с несколькими потоками в c#? - PullRequest
0 голосов
/ 03 мая 2020

У меня есть SQL таблица базы данных и предположим, что она содержит 3000 записей, теперь я хочу обработать все эти записи с 3 потоками. 1000 записей обрабатываются в 1-м потоке вот так. Как это возможно в c# многопоточности?

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

Вы можете создавать задачи, и в каждой задаче вы можете обрабатывать пакет строк.

var tasks = new List<Task>();
for (var i = 0; i < 3; i++)
{
    tasks.Add(new Task(() => doSomething(context.Subscriptors.Skip(i).Take(1000))));
}

Task.WhenAll(tasks);
//continue execution
0 голосов
/ 03 мая 2020

Самый простой подход - извлечь все строки путем заполнения a DataTable, затем разбить DataTable на меньшие подмножества данных как другие DataTable и передать их каждому потоку.

Посмотрите на ответ в этой ветке о том, как разбить DataTable на несколько DataTables.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...