Yga*_*bel 3 c# asynchronous task
我有两个任务,我等待它们完成
await Task.WhenAll
之后直接调用获取值会不会有问题.Result
我确信任务已经完成。
`
Task<int> t1 = Task.FromResult(1);
Task<int> t2 = Task.FromResult(2);
await Task.WhenAll(t1, t2);
var uuu = t1.Result;
// or var uuu = await t1;
Run Code Online (Sandbox Code Playgroud)
`
问题是 Visual Studio 设置了VSTHRD103 Call async methods when in an async method警告。
我检查了一下sharplab,结果版本 jit 有点小。
.Result如果我已经用 等待他们之后再打电话,我会遇到僵局吗Task.WhenAll?
没有问题,因为任务已经完成了。这是一个误报,可以忽略。
如果所有任务返回相同的结果,Task.WhenAll将返回一个包含结果的数组:
var results=await Task.WhenAll(tasks);
Run Code Online (Sandbox Code Playgroud)
结果的顺序与产生它们的任务的顺序相同
| 归档时间: |
|
| 查看次数: |
2747 次 |
| 最近记录: |