我有3个必须同时运行的异步函数,
public async Task Fun1()
{
// do something
}
public async Task Fun2()
{
// do something
}
public async Task Fun2()
{
// do something
}
在我的基本函数中,我将此函数称为 此功能必须一起运行 如何等待此功能完成所有操作?
public async Task BaseFun()
{
Fun1()
Fun2()
Fun3()
// do something after Fun1, Fun2 and Fun3 complete
}
答案 0 :(得分:4)
public async Task BaseFun()
{
await Task.WhenAll(Fun1(),
Fun2(),
Fun3());
// do something after Fun1, Fun2 and Fun3 complete
}
答案 1 :(得分:1)
只需在函数之前添加一个等待。
public async Task BaseFun()
{
await Fun1();
await Fun2();
await Fun3();
// do something after Fun1, Fun2 and Fun3 complete
}
答案 2 :(得分:0)
也可以用作
public async Task BaseFun()
{
await Fun1();
await Fun2();
await Fun3();
// do something after Fun1, Fun2 and Fun3 complete
}
答案 3 :(得分:0)
您还可以使用Task.WaitAll。
var taskArray = new Task[3]
{
Fun1(),
Fun2(),
Fun3()
};
Task.WaitAll(taskArray);
顺便说一句,当您通过公共基本方法调用它们时,为什么Fun1-3方法也同时公开?