Kar*_*son 7 c# multithreading async-await c#-5.0
关于C#5.0的一个很酷的事情是async/await关键字以及它如何简化你曾经用任务并行库(TPL)编写的管道.
我的问题是,如果你有线程无关的代码并且碰巧在主线程上触发了异步操作(读取:UI线程),但你不一定关心是否在主线程上发生了延续,那么你能否告诉async/await范例你希望它继续在第一个可用的线程上,即使它不是主线程?
我认为能够做到这一点会大大提高某些场景的效率,但不会成为灵丹妙药.
Jon*_*eet 16
如果您不关心方法的其余部分在哪里继续,请使用Task.ConfigureAwait:
await foo.DoSomethingAsync().ConfigureAwait(continueOnCapturedContext: false);
Run Code Online (Sandbox Code Playgroud)
(你不必须在这里使用一个命名的参数,但它增加了清晰度.)
有关更多详细信息,请参阅Stephen Cleary的"最佳实践"文章的"配置上下文"部分.
| 归档时间: |
|
| 查看次数: |
1814 次 |
| 最近记录: |