在我的C#代码中,每次都不会等待来自for每个内部的异步调用。
代码
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循环外部调用,则会按预期等待这些函数。
任何人都可以建议吗?
答案 0 :(得分:2)
我的猜测是:
要验证这一点,请在调试器下运行它或添加一些Console.WriteLines()。