Ожидание завершения threadpool - где ошибка - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день! Есть массив файлов aFiles, который хочу обработать методом check() через ThreadPool. При этом мне нужно, чтобы программа подождала завершения всех процессов. Пишу:
Листинг программы
  1. int c = 0;
  2. int FilesCount = aFiles.Length;
  3. DateTime dtStart = DateTime.Now;
  4. var handles = new ManualResetEvent[FilesCount];
  5. foreach (string file in aFiles)
  6. {
  7. handles[c] = new ManualResetEvent(false);
  8. c++;
  9. var currentHandle = handles[c];
  10. ThreadPool.QueueUserWorkItem(arg =>
  11. {
  12. try
  13. {
  14. Check((object)file);
  15. }
  16. finally { currentHandle.Set(); }
  17. });
  18. }
  19. WaitHandle.WaitAll(handles);
Но на строчке:
Листинг программы
  1. var currentHandle = handles[c];
выдает, что индекс находится за пределами массива. Подскажите, что неправильно в коде?

Решение задачи: «Ожидание завершения threadpool - где ошибка»

textual
Листинг программы
  1. WaitHandle.WaitAll(handles);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы