【问题标题】:Whether to use Task or Parallel class methods是否使用 Task 或 Parallel 类方法
【发布时间】:2021-09-11 05:47:36
【问题描述】:

我正在开发一个 Asp.Net Core 组件,该组件具有一些用于获取某些流程执行请求的接口。此请求将是同步的,其中接受请求并将提交令牌返回给调用者。请求被添加到队列并异步处理。每个请求执行都涉及进行一些休息调用以获取一些数据、执行进程等。

无论是使用Task还是Parallel类,如何并行处理来自队列的多个请求

【问题讨论】:

    标签: multithreading .net-core


    【解决方案1】:

    您所描述的是一系列 I/O 绑定的 REST 调用。你应该做的是循环这些调用,等待每个调用。类似的东西

    public async Task X()
    {
        // add requests to queue
        ...
    
        foreach (var request in queue)
        {
            await ExecuteRequest(request);
        }
    }
    

    经典意义上的并行性与线程和 CPU 绑定工作有关,因此不适合您的场景。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多