并行运行复杂吗?

时间:2018-04-28 07:27:56

标签: c# .net parallel-processing

我有一个复杂的foreach循环。由于网络服务器投了529,我必须对每100个连接进行限制,而且我知道在并行中我的限制将会搞砸。

有没有办法让这个并行运行,并且仍然可以正常运行?我刚刚开始涉足并行编程,并且我认为我不知道如何解决这个问题。

foreach (var userId in IdCollection)
{
    i++;

    if (i % 100 == 0 && i != 0)
    {
        Thread.Sleep(15 * 1000);
    }

    ProcessId(userId, file);
}

的ProcessID:

static async void ProcessId(long userId, string file)
{
    var username = await Utilities.GetUsernameFromId(userId);
    FileUtilities.WriteUsernameToFile(username, file);
    IdItemsProcessed++;
}

方法GetUsernameFromId是实际挂起的那个,我并行运行的理由是希望加快速度,我有超过100万个ID来处理,按照这个速度,它会带我永远

它将Web客户端运行到服务器,获取响应并将其解析为用户名。非常简单的东西,但是如果你大量地做这件事就会成为一个问题。

0 个答案:

没有答案