0

データの処理を同時に処理する複数のタスクを作成する次のコードがあります。仕事を終えたタスクはどうなるのだろう?それらは自動的に破棄されますか?

 var itemListByGroups = items.GroupBy(x => x.SomeValue);
   List<Task> tasks = new List<Task>();

   // Can create 20 to 30 tasks based on the result of the grouping
   foreach (var itemList in itemListByGroups)
   {
    var task = Task.Factory.StartNew(() => 
    {
     // intense processing 
    });
    tasks.Add(task);
   }

   Task.WaitAll(tasks.ToArray());

上記のコードは、処理するアイテムがさらにある場合に数秒ごとに呼び出されます。私の懸念は、タスクの数が増え続けるかどうかです。

4

1 に答える 1