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