我们使用术语“异步”来允许代码流继续运行而不会阻塞主流。还行吧。我们希望主流继续发展,而无需等待该过程完成。但通常,“异步和等待”一起使用。
我的问题是;当我们添加“ await”时,我们期望代码流中的“异步”状态。在这种情况下,我不了解使用“异步”有什么好处?有人可以解释一下,谢谢你,好工作。
答案 0 :(得分:0)
您指的是哪种技术尚不清楚。我假设您所指的是最近几年已添加到多种语言中的async
和await
关键字。
在这种情况下,该语句实际上是不正确的:
我们使用术语“异步”来允许代码流继续运行而不会阻塞主流。
在C#,JavaScript,Python,F#和Visual Basic中,async
关键字 not 异步起作用。它有两个作用:
await
关键字。所以async
不是 意思是“在后台线程上运行此代码”或类似的东西,这是一个常见但不正确的假设。
上面的第一点对于向后兼容很重要。这些语言中的每一种都使用await
作为上下文关键字,因此,如果程序中的文本“ await”是用async
标记的方法,则该文本仅是关键字。这样一来,这些语言就可以在不破坏任何现有代码(例如某人使用await
作为变量名的代码)的情况下引入新的关键字。
请参阅我的this post,它收集了许多关键字的讨论,这些关键字最初是为C#/ VB设计的。这些相同的设计决策也几乎完全采用了其他语言,因为它们也采用了关键字。与该帖子相关的资源之一是Eric Lippert's post,说明为什么除了async
关键字之外还需要await
关键字。