所以我的一位同事对我说 -
"Why would somebody want to call async RestAPIs with thread, Its not beneficial and in return it will create a separate thread for every request."
我的场景是-
public async Task<ApiResponse<ProductLookupDto>> GetProductsByValueOfTheDay()
{
string url = "http://domain.com?param=10120&isBasic=true"
var result = Task.Run(() => JsonConvert.DeserializeObject<ProductLookupDto>(SerializedResults.GET(url)));
return new ApiResponse<ProductLookupDto>()
{
Data = await result,
Message = "success"
};
}
所以在这里我使用异步线程。我知道它会为请求创建一个单独的线程。这是我对性能的关注。
我想知道我的一些方法是否被一起调用,以及响应是否像我现在所做的那样是异步的。线程会影响性能吗? 记住哪里 - rest 调用的响应太大。
最佳答案
你的 friend 实际上并不知道他在说什么——任务不会为每个请求创建一个单独的线程。相反,任务调度程序将确定线程——标准使用线程池。这意味着线程是预先分配和重用的,尤其是当您安排大量任务时。由于完成端口,在请求运行时也会释放线程。您的同事在这里表现出严重缺乏基础知识。
关于c# - 使用线程的异步 Rest API 调用会影响性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35356389/