作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对异步编程还很陌生。我想在等待其中任何一个任务之前启动一系列任务(发出 http 请求)。
List<Guid> identifiers;
//Set identifiers to what they should be
var task = Task.WhenAll(identifiers.Select(id => _serviceConnector.GetAsync(id)));
// Call and await another request
await task;
我的问题是:我的http请求会随着通过Task.WhenAll创建任务而启动吗?或者直到更进一步的等待才会开始?谢谢!
最佳答案
WhenAll
立即(同步)具体化其可枚举参数。因此,所有任务都将在 WhenAll
返回时开始。
如果你仔细想想,这是有道理的。 WhenAll
必须知道它正在等待多少个任务,以便它知道自己的任务何时完成。此外,它必须链接到每个任务,以便在每个子任务完成时收到通知。没有其他时间来做这项工作;它必须在返回之前进行计数并设置通知。
关于linq - Task.WhenAll 何时枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43761564/
我是一名优秀的程序员,十分优秀!