加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何从List.ForEach C#进行异步调用

发布时间:2020-12-15 22:49:21 所属栏目:百科 来源:网络整理
导读:我有项目列表和我想要调用UploadChunkToServer方法的每个项目,但是并行.列表中始终只有4个项目. if (DataQueue.Count == NumberofChunksToRead){ DataQueue.ToList().ForEach(Chunk = { UploadChunkToServer(Chunk); });} 以上是我在方法中的代码调用,方法签
我有项目列表和我想要调用UploadChunkToServer方法的每个项目,但是并行.列表中始终只有4个项目.

if (DataQueue.Count == NumberofChunksToRead)
{
    DataQueue.ToList().ForEach(Chunk =>
    {
        UploadChunkToServer(Chunk);
    });
}

以上是我在方法中的代码调用,方法签名如下.

private void UploadChunkToServer(UserCustomFile Chunk)
{
    var client = new RestClient(Helper.GetServerURL());

    var request = new RestRequest("api/fileupload/savechunk",Method.POST);
    request.AddHeader("Content-type","application/json");
    request.RequestFormat = RestSharp.DataFormat.Json;
    request.AddJsonBody(Chunk);

    client.ExecuteAsync(request,response =>
    {
        if (response.StatusCode != System.Net.HttpStatusCode.OK)
        {
            throw new Exception(response.ErrorMessage);
        }
        else
        {
            ChunkStatuses.Add(Chunk.ChunkID);
        }
    });
}

我试图添加异步运算符,但没有运气.有什么想法可以实现吗?

解决方法

也许你可以具体使用 Parallel和ForEach:

Parallel.ForEach(DataQueue.ToList(),Chunk =>
                 {
                      UploadChunkToServer(Chunk);
                 });

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读