c# - 使用线程的异步 Rest API 调用会影响性能吗?

标签 c# multithreading asynchronous

所以我的一位同事对我说 -

"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/

相关文章:

c# - 在主线程中捕获异步异常

javascript - 如何与 p5js 绘制循环并行运行代码?

c# - 在 Visual Studio 2010 语言服务中实现查找引用

c# - 多线程锁测试

c# - 只获取列表中的最后一项

c# - 通过单独的任务更新 BindingSource 中的元素

QT 错误中的 C++ 线程关联

javascript - 没有乱七八糟的回调的 JavaScript 异步编程

c# - 如何使用 Java 在 Windows 上创建虚拟磁盘(letter、share 等)?

c# - 保持 ObservableCollection 和 ObjectContext 同步的最佳方法?