如何等待辅助异步方法的返回
本文关键字:异步方法 返回 何等待 等待 | 更新日期: 2023-09-27 18:32:46
我有这个方法:
private async void myMethod01()
{
await myAynchMethod();
//more code
}
private void myMethod02()
{
//code
myMethod01();
//more code
}
当我执行代码时,当 myMethod02 调用 myMethod01 时,继续执行//more 代码,而无需 myMethod01 完成其代码。
这是因为 myMethod01 中的 await 将执行点返回到 myMethod02,而 myMethod02 在调用 mymethod01 后继续执行下一行代码。
我想知道是否有任何方法可以在myMethod02中等待,直到myMethod02完成其执行。
如果可能的话,我希望 myMethod01 不返回任务。
非常感谢。
我想知道是否有任何方法可以在myMethod02中等待直到 myMethod01 完成其执行。
和
如果可能的话,我希望 myMethod01 不返回任务。
是两个相互冲突的句子。如果你想同步等待Method01
完成,并且它是异步的,你必须让它返回一个类型是等待的。这不一定是Task
,它可以是实现GetAwaiter
方法的自定义类型,并返回实现INotifyCompletion
或ICriticalNotifyCompletion
的等待者。
您绝对不能让方法返回void
并异步等待它完成,这是没有意义的。您可以简单地同步运行代码。