作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
关于 C# 5.0 的一个很酷的事情是 async/await
关键字以及它如何简化您过去必须使用任务并行库 (TPL) 编写的管道。
我的问题是,如果你有线程不可知的代码,并且碰巧在主线程(阅读:UI 线程)上触发了一个异步操作,但你不一定关心继续发生在主线程上,那么你可以吗告诉 async/await
范例你希望它在第一个可用线程上继续,即使它不是主线程?
我认为能够做到这一点会大大提高某些场景的效率,但不是 Elixir 。
最佳答案
如果您不关心方法的其余部分在哪里继续,请使用 Task.ConfigureAwait
:
await foo.DoSomethingAsync().ConfigureAwait(continueOnCapturedContext: false);
(您不必在此处使用命名参数,但它会增加清晰度。)
参见 Stephen Cleary's "best practices" article 的“配置上下文”部分了解更多详情。
关于c# - 有没有办法强制异步/等待在第一个可用线程上继续?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18215391/
我是一名优秀的程序员,十分优秀!