[英]How to wait for async functions in c#
我有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
}
public async Task BaseFun()
{
await Task.WhenAll(Fun1(),
Fun2(),
Fun3());
// do something after Fun1, Fun2 and Fun3 complete
}
只需在函数之前添加await。
public async Task BaseFun()
{
await Fun1();
await Fun2();
await Fun3();
// do something after Fun1, Fun2 and Fun3 complete
}
也可以做
public async Task BaseFun()
{
await Fun1();
await Fun2();
await Fun3();
// do something after Fun1, Fun2 and Fun3 complete
}
您也可以使用Task.WaitAll。
var taskArray = new Task[3]
{
Fun1(),
Fun2(),
Fun3()
};
Task.WaitAll(taskArray);
顺便说一句,当您通过公共基本方法调用它们时,为什么Fun1-3方法也同时公开?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.