立即等待异步操作

史诗先生

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

  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)
  ....

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

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

乔恩·斯基特

我不明白这里有什么价值吗?

绝对-这意味着尽管您需要操作返回的值才能进行更多工作,但是在等待线程时不会占用线程。如果您要编写GUI,那特别重要,因为绑定GUI线程基本上意味着冻结UI。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

异步和等待-控件会立即从MVC操作方法返回吗?

来自分类Dev

开始异步操作,然后等待

来自分类Dev

开始异步操作,然后等待

来自分类Dev

反应:shouldComponentUpdate等待异步操作

来自分类Dev

React - 在异步操作后立即设置状态

来自分类Dev

当一切都立即返回时异步/等待

来自分类Dev

为什么异步方法不立即返回等待状态?

来自分类Dev

为什么异步方法不立即返回等待状态?

来自分类Dev

在RxJS Observable的onNext中等待异步操作

来自分类Dev

等待异步操作在Swift中完成

来自分类Dev

asio-等待异步操作完成

来自分类Dev

如何使Lambda函数等待异步操作完成?

来自分类Dev

异步等待CPU计算与IO操作的用法?

来自分类Dev

如何立即杀死正在等待网络操作的线程?

来自分类Dev

'收藏被修改;枚举操作可能无法使用异步/等待执行

来自分类Dev

不处理异步操作时应在哪里等待?

来自分类Dev

NSOperationQueue如何等待两个异步操作?

来自分类Dev

使用Task.WhenAny等待几种不同的异步操作的结果

来自分类Dev

具有异步/等待的可扩展操作

来自分类Dev

Ember.js验收测试不等待异步数据操作

来自分类Dev

Python异步:在执行其他操作时等待标准输入

来自分类Dev

如何在更改网址之前等待成功的异步操作?

来自分类Dev

如何在循环的每次迭代中等待异步操作完成

来自分类Dev

Nuxt-异步操作后等待(this。$ store.dispatch)

来自分类Dev

用异步操作等待字典的正确方法是什么?

来自分类Dev

Boost awaitable:如何在帖子内部等待异步操作

来自分类Dev

异步等待MVC操作返回Task而不是ActionResult

来自分类Dev

Task.Result等待而不是继续异步操作

来自分类Dev

等待页面加载之前完成异步操作(firebase)调用

Related 相关文章

  1. 1

    异步和等待-控件会立即从MVC操作方法返回吗?

  2. 2

    开始异步操作,然后等待

  3. 3

    开始异步操作,然后等待

  4. 4

    反应:shouldComponentUpdate等待异步操作

  5. 5

    React - 在异步操作后立即设置状态

  6. 6

    当一切都立即返回时异步/等待

  7. 7

    为什么异步方法不立即返回等待状态?

  8. 8

    为什么异步方法不立即返回等待状态?

  9. 9

    在RxJS Observable的onNext中等待异步操作

  10. 10

    等待异步操作在Swift中完成

  11. 11

    asio-等待异步操作完成

  12. 12

    如何使Lambda函数等待异步操作完成?

  13. 13

    异步等待CPU计算与IO操作的用法?

  14. 14

    如何立即杀死正在等待网络操作的线程?

  15. 15

    '收藏被修改;枚举操作可能无法使用异步/等待执行

  16. 16

    不处理异步操作时应在哪里等待?

  17. 17

    NSOperationQueue如何等待两个异步操作?

  18. 18

    使用Task.WhenAny等待几种不同的异步操作的结果

  19. 19

    具有异步/等待的可扩展操作

  20. 20

    Ember.js验收测试不等待异步数据操作

  21. 21

    Python异步:在执行其他操作时等待标准输入

  22. 22

    如何在更改网址之前等待成功的异步操作?

  23. 23

    如何在循环的每次迭代中等待异步操作完成

  24. 24

    Nuxt-异步操作后等待(this。$ store.dispatch)

  25. 25

    用异步操作等待字典的正确方法是什么?

  26. 26

    Boost awaitable:如何在帖子内部等待异步操作

  27. 27

    异步等待MVC操作返回Task而不是ActionResult

  28. 28

    Task.Result等待而不是继续异步操作

  29. 29

    等待页面加载之前完成异步操作(firebase)调用

热门标签

归档