腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(2725)
视频
沙龙
1
回答
异步
库
最佳
实践
:
ConfigureAwait
(
false
)
与
设置
同步
上下文
、
、
众所周知,在通用
库
中,每次等待调用都应该使用
ConfigureAwait
(
false
),以避免在当前SynchronizationContext上继续。作为使用
ConfigureAwait
(
false
)填充整个代码
库
的替代方法,可以在公共表面方法中将SynchronizationContext
设置
为null一次,然后在返回给用户之前恢复它。它的主要优点显然是可读性--删除了所有的
ConfigureAwait
(
false
)调用。这也可能
浏览 14
提问于2016-09-12
得票数 16
回答已采纳
2
回答
在ASP.NET MVC中
异步
编程的
最佳
实践
是什么?
、
、
、
、
根据文章,ASP.NET需要在控制器中使用相同的SynchronizationContext进行
异步
操作,否则会阻塞正在运行的线程。最后,作者提到,我们应该使用这两种方法作为防止线程死锁的
最佳
实践
:
浏览 4
提问于2015-03-01
得票数 4
回答已采纳
2
回答
我可以在
ConfigureAwait
4.7.2WebAPI中删除.NET (
False
)吗?
、
、
public async Task<IHttpActionResult> GetValue() var value = await _db.GetValue().
ConfigureAwait
(
false
); }我已经读过,将不在应用程序代码中使用
ConfigureAwait
,以便在捕获的
同步
上下文
中继续执行但是,通常我们应该使用
ConfigureAwait</em
浏览 10
提问于2021-12-21
得票数 1
回答已采纳
2
回答
为整个项目/dll
设置
ConfigureAwait
(
false
)
、
,这是“在可能的时候使用
ConfigureAwait
(
false
)”的
最佳
实践
。此外,它还指出,“如果您可以在方法的某个点使用
ConfigureAwait
,那么我建议您在该方法中的每一个等待阶段之后都使用它。”该文章的作者表示,“在‘
库
’
异步
方法中,只要添加了强调,就使用
ConfigureAwait
(
false
)。”考虑到我的
库
项目中大多数或所有打算广泛使用的await语句都应该有.
ConfigureAwai
浏览 0
提问于2014-05-17
得票数 25
回答已采纳
2
回答
在库代码中提供API的
同步
和
异步
版本
、
、
是否建议在类
库
中公开API的
同步
和
异步
版本的
最佳
实践
/指南?例如,如果在类
库
中定义了以下两个方法: { { t
浏览 0
提问于2013-06-07
得票数 4
1
回答
异步
方法
同步
调用的差异
、
、
我有
同步
代码,我正在
与
只有
异步
方法的
库
集成。从
同步
代码调用
异步
代码的
最佳
方法是什么,以及为什么:解A:解决方案B: Task<string> task = Task.Run<string>(async () => await _service.CallAsync().
ConfigureAwait
浏览 2
提问于2020-03-03
得票数 1
1
回答
在DocumentDB中
异步
创建新的C#文档的问题
、
、
await client.CreateDocumentAsync("dbs/" + database.Id + "/colls/" + coll.Id, this); } 它似乎是
异步
任务块
浏览 2
提问于2016-02-11
得票数 1
回答已采纳
2
回答
我应该在所有方法中使用配置等待,还是只在第一个方法中使用配置等待?
、
、
我有一个包含
异步
方法的
库
,我已经读过,对于
库
,建议使用
ConfigureAwait
(
false
)。myMethod02() await myMethod03();{}
库
用户只能使用method01,其他两个方法是私有的,因为它们是主方法method01()的辅助
浏览 0
提问于2019-05-25
得票数 0
回答已采纳
1
回答
图书馆中的
ConfigureAwait
(真)
、
、
现在我知道ASP.NET WebForms需要使用
ConfigureAwait
(true)进行
异步
调用,因为它需要返回到原始
同步
上下文
才能完成页面。但是,
异步
调用链进入库程序集(也由我们构建)。
库
不需要知道,也不需要关心
同步
上下文
来完成它的
异步
工作。此外,它还可以(潜在)用于其他
上下文
,如控制台应用程序。因此:
库
方法应该始终使用
ConfigureAwait
(true) (如果它被
浏览 2
提问于2020-01-08
得票数 0
1
回答
异步
服务器方法中使用的SynchronizationContext
、
、
、
、
因此,我有一个
异步
的C#服务器,它需要在服务器方法之间进行大量的交互(例如,流rpc的流响应值可以从另一个rpc生成)。我尝试过将SynchronizationContext
设置
为基于单个线程的
上下文
,但是服务器方法似乎仍然是从任意线程调用的。如何确保在同一个线程上调用所有服务器方法,同时在同一个线程上也调用
异步
/等待延续?int threadId = Thread.CurrentThread.ManagedThreadId; 请注意,在本例中,SharedInstanceMethod()是许多其他函数和其
浏览 4
提问于2017-07-01
得票数 0
回答已采纳
2
回答
我应该在诸如存储
库
之类的地方使用
ConfigureAwait
(
false
)吗?
、
、
、
、
只要读一读关于
ConfigureAwait
的文章,它就会让我思考一个我已经有一段时间无法
与
之和解的问题了。你认为如何?无<em
浏览 5
提问于2019-12-16
得票数 1
回答已采纳
1
回答
异步
方法在不同线程中的延续--意味着合作的双线程访问对象变量?
、
、
、
、
当我用
异步
方法编写时:{ { } myContinuation(); //maybe on thread 2 or another one from pool}myContinuation()可能不会在
与
myPrologue()相同的线程中执行。这是
浏览 2
提问于2016-10-30
得票数 0
回答已采纳
2
回答
带有
异步
/等待的ASP.NET Webforms
、
、
、
我的基于.Net 4.6的Webforms应用程序必须相当广泛地使用
异步
/等待功能。因为我对这个
异步
/等待主题非常陌生,所以我阅读了很多
最佳
实践
,比如或。关于
上下文
和
ConfigureAwait
,使用await SomeAsyncMethod.
ConfigureAwait
(
false
)以获得更好的性能和
上下文
不重要的地方似乎是
最佳
实践
,而不使用
上下文
(例如在操作
浏览 0
提问于2017-06-06
得票数 10
3
回答
如何在
异步
方法上使用
ConfigureAwait
、
、
我正在研究
ConfigureAwait
的正确用法,我已经为
ConfigureAwait
确定了一个有效的用例(也就是说,在等待不需要调用线程
同步
上下文
之后),并且看不到关于在
异步
方法上使用
ConfigureAwait
RunBackgroundTask();{} 要正确使用
ConfigureAwait
,我是否假设这两个await调
浏览 1
提问于2019-07-03
得票数 2
回答已采纳
1
回答
MVC中有关
异步
/等待的矛盾建议
、
、
在“防止僵局”一节中,他指出: 使用
ConfigureAwait
(
false
)来避免死锁是一种危险的做法。对于阻塞代码调用的所有方法的传递闭包中的每个等待,您都必须使用
ConfigureAwait
(
false<
浏览 1
提问于2018-02-15
得票数 1
回答已采纳
1
回答
修改第三方
异步
lib回调中的UI元素
、
、
我使用的是第三方
库
,它提供
异步
方法。
库
可以接收将在
异步
操作期间执行的回调。 我正在使用Windows窗体应用程序中的这个
库
,并传递一个回调来更新UI状态。但是,回调似乎是从UI的其他线程调用的。实际上,他们使用
ConfigureAwait
(
false
) (似乎是 )在内部链接一些
异步
调用。要点是:迫使lib使用者假定
异步
库
中的回调可能不会在原始
同步
上下文
中调用,这似乎有悖常理。从l
浏览 8
提问于2022-11-03
得票数 0
1
回答
在添加.
ConfigureAwait
(
False
)之后,“在以前的
异步
操作完成之前,在此
上下文
上启动第二个操作”;
、
、
、
、
我有一个方法,我想在其中执行3个
异步
方法。其中2个(Method1和Method3)使用dbContext查询数据。await Task.WhenAll(Method1(dbContext), Method2(), Method3(dbContext)).
ConfigureAwait
(
false
);;使用.
ConfigureAwait
(
false
);
浏览 0
提问于2019-01-21
得票数 0
回答已采纳
1
回答
“等待task.
ConfigureAwait
(假)”
与
“等待ContextSwitcher.SwitchToThreadPool()”
、
、
、
、
人们普遍建议像这样使用
ConfigureAwait
(
false
):// ...// ...// ...同时,人们普遍不鼓励使用类似于这个的东西,因为它
浏览 2
提问于2019-11-28
得票数 1
回答已采纳
1
回答
我是否应该在等待的每一次手术中调用
ConfigureAwait
(假)?
、
我读过这篇文章 --但是我看到了一个矛盾的地方:有两种
最佳
实践
(在我的介绍文章中都提到过)可以避免这种情况: 在“
库
”
异步
方法中,尽可能使用
ConfigureAwait
(
false
)。我
浏览 1
提问于2017-04-15
得票数 21
2
回答
.GetAwaiter()和
ConfigureAwait
()之间的区别
、
有人能告诉我GetAwaiter()和
ConfigureAwait
(
false
)之间的区别吗?在
异步
方法中使用这两种方法来解决死锁情况,在不使用
同步
上下文
的情况下使用
ConfigureAwait
来完成任务。我正在寻找我们可以使用GetAwaiter()的场景以及我们使用
ConfigureAwait
(
false
)的场景。我听说如果它是我正在构建的
库
,那么我需要使用
ConfigureAwait
(
false</em
浏览 2
提问于2015-11-21
得票数 4
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
C#并发编程之异步编程
当我谈论高性能时我们谈论什么?
python 黑魔法-上下文管理器
架构师必备:MySQL主从同步原理和应用
Python 异步 IO系列:认识asyncio
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
云直播
活动推荐
运营活动
广告
关闭
领券