我有这样的代码:
var myTask = requiredTask.ContinueWith(_=>
{
var otherTasks = from item in otherObjects select item.DoSomethingAsync();
Task.WaitAll(otherTasks);
// do my real work
});
我的理解是,当(IO 绑定)子任务完成时,对 WaitAll 的调用将阻塞并保留线程池中的一个线程。我的问题是:
我关于绑定线程池线程的假设是否正确?
如果是这样,避免这样做的最佳方法是什么?
请注意,这是针对需要支持 .NET4/Windows XP 的库,因此await
不能选择使用。