gpt4 book ai didi

c# - 有没有办法强制异步/等待在第一个可用线程上继续?

转载 作者:太空狗 更新时间:2023-10-29 19:58:24 26 4
gpt4 key购买 nike

关于 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com