从列表中<Task>删除已完成的任务



我在.net 4.0中使用TPL异步处理多个任务。以下是代码片段:

List<Task> TaskList = new List<Task>();
while (some condition)
{
    var t = Task.Factory.StartNew( () = > doSomething () );
    TaskList.Add(t)
}
//Wait for all tasks to complete
Task.WaitAll(TaskList.toArray());

如果while循环运行很长时间,"TaskList"的大小会发生什么变化?我担心,如果while循环运行几天,这将占用大量内存。我必须从该列表中删除已完成的任务吗?还是自动处理这些任务?

有没有其他方法可以在内存方面优化它?

TaskList.RemoveAll(x => x.IsCompleted);

我必须从该列表中删除已完成的任务吗?还是自动处理这些任务?

不,如果您不删除List的条目,则没有人会删除。

最新更新