gpt4 book ai didi

c# - 即使我立即获得返回任务的结果,HttpClient 是否会旋转一个新线程?

转载 作者:太空宇宙 更新时间:2023-11-03 19:06:23 25 4
gpt4 key购买 nike

在我的应用程序中,我喜欢尝试保持一致并尽可能使用 HttpClient。但是,有时我不需要 HttpClient 的异步属性,所以我只是在任务返回后立即获取它的结果,如下面的代码所示。

public HttpResponseMessage httpPostWrapperMethod(string postBody, string url)
{
HttpContent content = new StringContent(postBody, Encoding.UTF8, "application/json");

HttpClient client = new HttpClient();

return client.PostAsync(url, content).Result;
}

我的两部分问题是这样的:

此代码是否会导致在进行调用时在后台旋转一个新线程?

如果我对其他服务的调用大约需要 500 毫秒,当该服务处于大约 100 个请求/秒的生产负载下时,这是否会导致我消耗过多线程?

最佳答案

PostAsync 不会导致创建线程,不会。事实上,如果代码被异步使用,那么任何线程都不需要做任何事情来完成这项工作。在您的情况下,您在等待操作完成时让当前线程无所事事,因此这是执行此操作时唯一消耗/浪费时间的线程。

关于c# - 即使我立即获得返回任务的结果,HttpClient 是否会旋转一个新线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26741864/

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