在我能找到的HttpClient
用法的所有示例中,它都用于一次性调用。但是,如果我有一个持久的客户端环境,其中可以同时发出几个请求,该怎么办呢?基本上,针对同一HttpClient
实例同时在两个线程上调用client.PostAsync
是安全的吗?
我在这里并不是真的在寻找实验结果。作为一个可工作的示例,可能只是一个偶然的(而且是持久的),而一个失败的示例可能是一个错误的配置问题。理想情况下,我正在寻找HttpClient中并发处理问题的权威答案。
发布于 2012-06-24 22:25:54
According to Microsoft Docs,从.NET 4.5开始,以下实例方法都是线程安全的(感谢@ischell):
CancelPendingRequests
DeleteAsync
GetAsync
GetByteArrayAsync
GetStreamAsync
GetStringAsync
PostAsync
PutAsync
SendAsync
PatchAsync
发布于 2012-11-16 07:44:50
这是亨里克·F·尼尔森关于HttpClient的另一篇article,他说:
“默认HttpClient是开始发送请求的最简单方式。可以使用单个HttpClient同时发送任意多个请求,因此在许多情况下,您只需创建一个HttpClient,然后将其用于所有请求。”
发布于 2012-06-25 22:29:42
发现了HenrikF.Nielsen(HttpClient的主要架构师之一)的一个MSDN forum post。
快速总结:
https://stackoverflow.com/questions/11178220
复制相似问题