【发布时间】:2019-06-28 20:13:52
【问题描述】:
在我的 c# 代码中,不会每次都在等待来自 for each 内部的异步调用。
代码
private async Task GetCardInfo()
{
try
{
var result = await DoTask1();
var info = await DoTask2();
foreach (var inf in info)
{
await DoTask3();
}
}
catch (Exception ex){ }
}
DoTask1(); 和 DoTask2(); 总是被等待,但 DoTask3(); 有时会被等待,有时却不是。我认为问题出在DoTask3();,但如果我将DoTask1(); 放入foreach 循环中,我也会遇到类似的问题。我是不是做错了什么?
该问题仅在从 foreach 循环内部调用时发生,如果从 foreach 循环外部调用这些函数,则会按预期等待。
谁能给点建议?
【问题讨论】:
-
你能提供一个Minimal, reproducible example吗?
-
DoTask3会扔吗? -
catch (Exception ex){ }永远不要这样做,也不要把它放在一个问题中,因为这只是意味着我们必须向您询问更多关于您可能丢弃重要异常的可能性
标签: c# async-await c#-5.0