【发布时间】:2012-01-18 06:32:13
【问题描述】:
我一直在 Silverlight 中看到关键字 async 使用,但想知道是否有人对它是什么以及何时使用它及其好处进行了假解释。如果您能解释一下,将不胜感激。谢谢。
【问题讨论】:
-
这与线程有关这是一个相当大的话题,但是如果您只想要一个基本实用的一句话答案,异步意味着两件事在时间上相互独立地发生。例如,您有一个查询数据库的按钮。如果您不竭尽全力使其异步,那么您的整个程序将停止并等待它完成,然后再允许您执行其他任何操作。如果您不希望这种情况发生,您可以使其异步(通常通过使用另一个线程),并且仍然保留对您的 UI 的控制,例如。
-
@CptSupermrkt 值得一提的是,async/await 的要点之一是避免产生新线程。例如,请参阅 blogs.msdn.com/b/ericlippert/archive/2010/10/29/… ,其中部分内容是“异步方法的全部意义在于您尽可能地留在当前线程上。”
-
@phoog - 生成线程与停留在正确的线程上不同。
-
@Erno 是的,这正是我评论的重点。
-
@phoog - “值得一提的是,异步/等待的要点之一是避免产生新线程。”我不同意这一点。 async/await 用于轻松编码和读取异步调用/回调。就是这样。我们可以没有。不要误会我的意思;我喜欢这些关键字。
标签: c# .net asynchronous async-await