[英]How to wait for async functions in c#
I have 3 async function that must run together, like this 我有3个必须一起运行的异步函数
public async Task Fun1()
{
// do something
}
public async Task Fun2()
{
// do something
}
public async Task Fun2()
{
// do something
}
in my base function I call this functions this functions must run together how to wait for this functions until all complete? 在我的基本函数中,我将此函数称为必须一起运行的函数,如何等待此函数直到全部完成?
public async Task BaseFun()
{
Fun1()
Fun2()
Fun3()
// do something after Fun1, Fun2 and Fun3 complete
}
public async Task BaseFun()
{
await Task.WhenAll(Fun1(),
Fun2(),
Fun3());
// do something after Fun1, Fun2 and Fun3 complete
}
Just add await before the functions. 只需在函数之前添加await。
public async Task BaseFun()
{
await Fun1();
await Fun2();
await Fun3();
// do something after Fun1, Fun2 and Fun3 complete
}
also can do as 也可以做
public async Task BaseFun()
{
await Fun1();
await Fun2();
await Fun3();
// do something after Fun1, Fun2 and Fun3 complete
}
You can also use Task.WaitAll. 您也可以使用Task.WaitAll。
var taskArray = new Task[3]
{
Fun1(),
Fun2(),
Fun3()
};
Task.WaitAll(taskArray);
BTW, why are your Fun1-3 methods also public when you call them through a public base method? 顺便说一句,当您通过公共基本方法调用它们时,为什么Fun1-3方法也同时公开?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.