如果我在 C# 中调用RunSynchronously()a Task,这会导致在兔子洞中进一步异步调用同步运行吗?
假设我有一个名为UpdateAsync(). 在这个方法中,另一个异步调用被调用DoSomethingAsync(),在这个内部我们再次发现DoSomethingElseAsync(),调用RunSynchronously()'UpdateAsync()'会导致RunSynchronously()也间接被调用DoSomethingAsync()吗?
我的问题的原因:
我有一种情况,我“需要”在 -blockUpdateAsync()内调用异步方法 ( )catch并想知道调用它RunSynchronously()是否安全。文档非常清楚您不能await在catch-block 内。(严格来说,我可以在 -block 内使用布尔值catch并在 try-catch 之后调用UpdateAsync(),但这感觉很脏)。对双重问题感到抱歉,但正如您可能理解的那样,我不太知道如何表达它,并且对这个领域没有很好的理解。
(编辑: 我不知道如何找出方法是否被异步调用。你将如何为此编写单元测试?是否可以以某种方式记录它?)