我正在向IP摄像机发射命令,其中约有数千个。代码和网络请求都在ConnectCam方法中。 我使用下面的模式使用Task.WhenAny()一次将它们全部触发。 这有潜在的瓶颈吗?我应该限制请求吗?
List<Task> tasks = deviceList.Select(x => ConnectCamAsync(ct, x.IpAddress, x.UserName, x.PassWord)).ToList();
var orgCount = tasks.Count();
while (tasks.Count() > 0)
{
ct.ThrowIfCancellationRequested();
try
{
var firstFinishedTask = await Task.WhenAny(tasks);
tasks.Remove(firstFinishedTask);
await firstFinishedTask;
}
finally
{
UpdateProgress(0, orgCount, orgCount - tasks.Count());
}
}