【问题标题】:Why async code only executes properly when debugging [closed]为什么异步代码仅在调试时才能正确执行[关闭]
【发布时间】:2020-05-25 19:46:43
【问题描述】:

这个问题让我摸不着头脑,直到我意识到我犯的基本错误。

我发现异步方法没有正确执行,除非我使用调试器直接进入它。

【问题讨论】:

  • @Pavel Anikhouski @yaakov @Klaus Gütter,这个问题不是由错字引起的,也不是由无法再重现的问题引起的。这是因为我做了一个在两个地方调用的方法async,并且只让一个调用者await它。我可以很容易地重现这个问题。因此,我会说所述的关闭原因是不正确的。 IMO 这个问题的价值在于它将其他人可能经历和搜索的观察到的行为与一个简单的解决方案联系起来。
  • 重新提出这个问题的理由:我的意思是说“其他人可能会遇到并寻找一个简单的解决方案”。这是由人为错误引起的问题,因此很有用。人为错误是许多 SO 问题的核心,因为即使是开发人员也只是人。

标签: c# async-await


【解决方案1】:

在我的一位同事的纸板剪纸的帮助下,我意识到我忘记将调用者设为async,并将结果设为await

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多