首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Kephas中调用异步函数时,PreserveThreadContext()是什么?

在Kephas中调用异步函数时,PreserveThreadContext()是什么?
EN

Stack Overflow用户
提问于 2019-04-16 17:47:13
回答 1查看 22关注 0票数 1

我注意到,在所有的Kephas示例中,当调用异步方法时,最后都会调用PreserveThreadContext()。这是做什么的?

下面是一些例子:

代码语言:javascript
复制
   var result = await dataContext.Query<Document>()
                                 .ToListAsync()
                                 .PreserveThreadContext();

我知道ConfigureAwait(false),这是类似的东西吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-18 04:38:47

在某种程度上,是的,这意味着在服务器环境中,它还包括对ConfigureAwait(false)的调用。但它还会在从异步调用返回时还原线程绑定区域性(和UI区域性),以便以一致的方式本地化字符串。这是因为您可能会在返回时发现自己在另一个线程中,其中区域性是默认的区域性,而不是配置的区域性。此外,您还可以添加自己的行为来存储/恢复其他线程绑定信息。为此,请检查类https://github.com/kephas-software/kephas/blob/master/src/Kephas.Core/Application/PreserveCultureThreadContextAppLifecycleBehavior.cs,该类添加了区域性保留行为。通常,您将在BeforeAppInitializeAsync方法的AppLifecycleBehavior中实现此功能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55705233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档