Diferença entre ThreadPool.QueueUserWorkItem e Parallel.ForEach?
Qual é a principal diferença entre duas das seguintes abordagens:
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);
});
Eu sou novo em multi-threading e quero saber o que vai acontecer em cada caso (em termos de processo de execução) qual é o nível de multi-threading para cada abordagem? Ajude-me a visualizar os dois processos.
SendFilesToClient: Obtém dados do banco de dados, converte para o Excel e envia o arquivo do Excel para o respectivo cliente.
Obrigado!