Я работаю над очередью с именами файлов. Каждый файл должен обрабатываться внешним двоичным файлом. Это прекрасно работает, но одновременно обрабатывает только один файл. Возможно ли одновременное создание двух процессов?
Queue<string> queue = new Queue<string>();
queue.Enqueue("1.mp3");
queue.Enqueue("2.mp3");
queue.Enqueue("3.mp3");
...
queue.Enqueue("10000.mp3");
while (queue.Count > 0)
{
string file = queue.Dequeue();
Process p = new Process();
p.StartInfo.FileName = @"binary.exe";
p.StartInfo.Arguments = file;
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardOutput = true;
p.Start();
p.WaitForExit();
}
Обновление: мне нравится решение от Alex LE (процессы Spawn, но только по 5 одновременно), но возможно ли дождаться выхода дочерних процессов, как предложил Бен Фойгт?
Редактировать 1: мне нужно проверить p.ExitCode == 0, чтобы сделать некоторые обновления базы данных.