В чем основное отличие двух следующих подходов:
ThreadPool.QueueUserWorkItem
Clients objClient = new Clients();
List<Clients> objClientList = Clients.GetClientList();
foreach (var list in objClientList)
{
ThreadPool.QueueUserWorkItem(new WaitCallback(SendFilesToClient), list);
}
System.Threading.Tasks.Parallel ForEach
Clients objClient = new Clients();
List<Clients> objClientList = Clients.GetClientList();
Parallel.ForEach<Clients>(objClientList, list =>
{
SendFilesToClient(list);
});
Я новичок в многопоточности и хочу знать, что произойдет в каждом случае (с точки зрения процесса выполнения), какой уровень многопоточности для каждого подхода? Помогите мне визуализировать оба процесса.
SendFilesToClient: Получает данные из базы данных, конвертирует в Excel и отправляет файл Excel соответствующему клиенту.
Спасибо!