如何等待辅助异步方法的返回

本文关键字:异步方法 返回 何等待 等待 | 更新日期: 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方法的自定义类型,并返回实现INotifyCompletionICriticalNotifyCompletion的等待者。

您绝对不能让方法返回void并异步等待它完成,这是没有意义的。您可以简单地同步运行代码。