処理するバッチのリストがあります。永遠に。
各チャンク (5) を並行して実行し、完了したら次のチャンクに移動します。
何らかの理由で、次のコードはチャンクが完了するのを待機せず、完了していなくても続行します。
while (true)
{
foreach (string[] urlsArr in chunks)
{
int i = 0;
foreach (var url in urlsArr)
{
ThreadPool.QueueUserWorkItem(x =>
{
ProccessUrl(url, config, drivers[i]);
_resetEvent.Set();
i++;
});
}
_resetEvent.WaitOne();// this is not really waiting.
}
}