次の 2 つのアプローチの主な違いは何ですか。
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 ファイルをそれぞれのクライアントに送信します。
ありがとう!