c# - 立即等待异步操作

标签 c#

我正在查看另一位开发人员的这些代码行:

  bool isValid = await engine.GetTaskByIdAsync(taskId);
  if(isValid )
  ....

当我使用async 操作时,它是在异步操作完成时做独立的工作:

  Task<bool> task = engine.GetTaskByIdAsync(taskId);

  //Do work that doesn't need the "task" variable

  bool completed = await task;
  if(bool)
  ....

第一个示例似乎启动了一个异步操作,然后立即开始等待。这里有什么我不明白的值吗?

注意:此代码位于应用程序的数据访问层,因此它不与用户界面交互。

最佳答案

Is there some value here I don't understand?

绝对 - 这意味着虽然您需要操作返回的值才能做更多的工作,但您在等待它时不会占用线程。如果您正在编写 GUI,这一点尤其重要,因为占用 GUI 线程基本上意味着卡住 UI。

听起来您正在关注异步的“并行执行多项操作”方面,这很重要,但远不是它的唯一好处。

关于c# - 立即等待异步操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25815053/

相关文章:

c# - 在C#中检查浮点变量的确切值相等的正确方法是什么?

c# - 使用 AT COMMANDS 接收短信

c# - Linq 查询中的“IN”和 'NOT IN'

c# - Razor:foreach block 的末尾在 if 语句后不呈现

c# - Java 与 C# 带有 JSON 数据的 HTTP 请求

c# - Launcher.LaunchFileAsync() 和处理互联网安全设置

c# - 将业务规则放入存储库中

c# - LINQ 数值分组

c# - System.Messaging.dll 在 .Net Core 中不可用吗?

c# - 线程和 Winforms 表单重绘