【发布时间】:2013-08-15 10:35:02
【问题描述】:
关于 C# 5.0 的一个很酷的地方是 async/await 关键字以及它如何简化您过去必须使用任务并行库 (TPL) 编写的管道。
我的问题是,如果您有与线程无关的代码,并且您碰巧在主线程(阅读:UI 线程)上触发了异步操作,但您不一定关心继续是否发生在主线程上,那么您可以告诉async/await 范式您希望它在第一个可用线程上继续,即使它不是主线程?
我认为能够做到这一点会大大提高某些场景的效率,但不是灵丹妙药。
【问题讨论】:
-
请注意,在某些情况下,拥有此能力对于正常运行非常重要,而不仅仅是效率。您可以通过确保某些延续不在捕获的上下文中运行来避免导致死锁。
标签: c# multithreading async-await c#-5.0