gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:39:03 25 4
gpt4 key购买 nike

我有项目列表,对于每个项目,我想并行调用 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);
});

关于c# - 如何从 List.ForEach C# 进行异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48060131/

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