【发布时间】:2020-11-02 15:34:04
【问题描述】:
我需要了解一些事情, 我有一个函数,例如:
public static class classExample
{
public async Task funcAsync()
{
List<Task<string>> exampleList= new List<Task<string>>();
// do stuff
await Task.WhenAll(exampleList);
}
}
在我的主要方法中,我有:
main()
{
classExample.funcAsync();
}
如果我像这样在 main 中使用 await 词:
await classExample.funcAsync();
与没有等待在 main 中不同吗?我问是因为我有
await Task.WhenAll(exampleList);
在函数内部。
有什么不同?
还有更多问题,我有这个例子:
async Task function2()
{
// do stuff
await //for some code will be done
}
main()
{
function2();
function3();
}
如果我不使用等待字所以函数将继续函数3, 在这种情况下,我不需要 function3 等待 function2,这是 可以继续,但问题是:function2 会完成所有工作吗? 如果 function3 将在 function2 结束之前结束所有工作。 在 function3 将结束所有工作之后 main 函数等待 function2 将结束?
谢谢!
【问题讨论】:
-
你确定不是
public static async Task funcAsync()?
标签: c# multithreading async-await