1:task: waitany 关键词
2:task: waitall 关键词
3: TaskStatus.RanToCompletion ,t.Status! 关键词
List<Task> tasks = new List<Task>();
///10000个任务10个线程
List<int> ls = new List<int>();
for (int i = 0; i < 10000; i++)
{
ls.Add(i);
}
Action<int> actnew = i =>
{
Thread.Sleep(5);
Console.WriteLine("工作" + i + "end");
};
foreach (var w in ls)
{
tasks.Add(Task.Run(()=>actnew.Invoke(w)));
if (tasks.Count > 10)
{
Task.WaitAny(tasks.ToArray());
tasks = tasks.Where(t=>t.Status!=TaskStatus.RanToCompletion).ToList();
}
}
Task.WaitAll(tasks.ToArray());