为什么不使用同步方法而不是等待异步任务?

恩扎尔

异步方法:

public void Main(){
    await Asynctask1;
    DoSomething();
}

public async Task AsyncTask1(){
    //Async logic here
}

同步方式:

public void Main(){
    SyncMethod1();
    DoSomething();
}

我想我在这里错过了一些东西。假设SyncMethod1()并且Asynctask1()两者都做相同的事情,这两个构造最后DoSomething()是否不是相同的结果,也就是说,直到之前的方法完成才开始?

斯蒂芬·克莱里

也就是说,DoSomething()直到方法完成才开始?

异步顺序之间有区别当您始终总是await立即使用异步方法时,最终会得到异步顺序代码,乍一看,它的行为似乎与同步顺序代码类似。(顺便说一句,这个相似点是async/await关键字的全部要点)。但是,有一个重要的区别。

假设操作是一些I / O事情,例如获取HTTP资源。SyncMethod1将使HTTP同步获取;也就是说,它发出HTTP请求,然后阻塞线程,直到获得HTTP响应为止。AsyncTask1将使HTTP异步获取;也就是说,它发出HTTP请求,然后返回incomplete Task稍后,当HTTP请求进入时,该AsyncTask1方法将恢复并完成return的运行Task,并await运行之后的代码(即DoSomething)。

异步方式更为复杂,但具有一个关键优势:它不会阻塞线程。因此,释放了UI线程以启用响应式UI,释放了ASP.NET线程来处理其他请求。

我的博客上有一个async介绍,可能对您有所帮助。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用异步倒数事件而不是收集任务并等待它们?

来自分类Dev

异步方法不是等待

来自分类Dev

为什么返回Task <int>而不是int?(异步并等待)

来自分类Dev

为什么返回Task <int>而不是int?(异步并等待)

来自分类Dev

任务是异步的还是同步的,没有等待异步?

来自分类Dev

为什么不使用@RequestParam而不是@ModelAttribute

来自分类Dev

如何使用异步方法启动未等待的后台任务?

来自分类Dev

为什么在同步中等待?

来自分类Dev

nodejs-什么时候使用异步而不是同步功能?

来自分类Dev

为什么我更喜欢使用API异步功能而不是用Task.Run包装同步功能?

来自分类Dev

为什么未等待的异步方法不会引发异常?

来自分类Dev

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

来自分类Dev

为什么void方法要异步才能等待?

来自分类Dev

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

来自分类Dev

为什么在等待任务返回方法时出现InvalidCastException?

来自分类Dev

为什么异步/等待不异步运行?

来自分类Dev

如何同步调用异步(等待)方法?

来自分类Dev

如何同步调用异步(等待)方法?

来自分类Dev

为什么一直使用异步/等待

来自分类Dev

为什么我的动作视图方法使用括号而不是不使用括号?

来自分类Dev

带有同步方法调用的异步任务

来自分类Dev

Tulip / asyncIO:为什么不是所有调用都异步并指定什么时候应该同步?

来自分类Dev

异步/等待方法中的耗时任务

来自分类Dev

等待异步方法中已完成的任务

来自分类Dev

异步/等待方法中的耗时任务

来自分类Dev

如何等待运行异步方法的任务

来自分类Dev

异步和等待任务 - 在 N 层应用程序中使用哪些方法进行异步?

来自分类Dev

使用异常传播同步运行异步任务

来自分类Dev

在递归方法中使用异步/等待的正确方法是什么?

Related 相关文章

  1. 1

    如何使用异步倒数事件而不是收集任务并等待它们?

  2. 2

    异步方法不是等待

  3. 3

    为什么返回Task <int>而不是int?(异步并等待)

  4. 4

    为什么返回Task <int>而不是int?(异步并等待)

  5. 5

    任务是异步的还是同步的,没有等待异步?

  6. 6

    为什么不使用@RequestParam而不是@ModelAttribute

  7. 7

    如何使用异步方法启动未等待的后台任务?

  8. 8

    为什么在同步中等待?

  9. 9

    nodejs-什么时候使用异步而不是同步功能?

  10. 10

    为什么我更喜欢使用API异步功能而不是用Task.Run包装同步功能?

  11. 11

    为什么未等待的异步方法不会引发异常?

  12. 12

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

  13. 13

    为什么void方法要异步才能等待?

  14. 14

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

  15. 15

    为什么在等待任务返回方法时出现InvalidCastException?

  16. 16

    为什么异步/等待不异步运行?

  17. 17

    如何同步调用异步(等待)方法?

  18. 18

    如何同步调用异步(等待)方法?

  19. 19

    为什么一直使用异步/等待

  20. 20

    为什么我的动作视图方法使用括号而不是不使用括号?

  21. 21

    带有同步方法调用的异步任务

  22. 22

    Tulip / asyncIO:为什么不是所有调用都异步并指定什么时候应该同步?

  23. 23

    异步/等待方法中的耗时任务

  24. 24

    等待异步方法中已完成的任务

  25. 25

    异步/等待方法中的耗时任务

  26. 26

    如何等待运行异步方法的任务

  27. 27

    异步和等待任务 - 在 N 层应用程序中使用哪些方法进行异步?

  28. 28

    使用异常传播同步运行异步任务

  29. 29

    在递归方法中使用异步/等待的正确方法是什么?

热门标签

归档