Прошу прощения за излишний вопрос. Тем не менее, я нашел много решений для своей проблемы, но ни один из них не очень хорошо объяснил. Я надеюсь, что здесь будет ясно.
Мой основной поток приложения С# порождает 1..n фоновых работников, использующих ThreadPool. Я хочу, чтобы исходный поток был заблокирован, пока все рабочие не завершили работу. Я изучил ManualResetEvent, в частности, но я не понимаю его использования.
В псевдо:
foreach( var o in collection )
{
queue new worker(o);
}
while( workers not completed ) { continue; }
При необходимости я буду знать количество рабочих, которые должны быть поставлены в очередь перед началом работы.