Если у вас есть ссылка на темы, которые вы ожидаете завершить, вы можете вызвать метод .Join() для этих ссылок. Это приведет к тому, что ваш основной поток будет ждать, пока потоки, которые вы вызвали .Join(), должны закончиться до того, как они начнутся.
В качестве альтернативы вы можете создать массив ManualResetEvents, к которым имеют доступ как основной поток, так и дочерний поток. Каждый дочерний поток имеет ссылку на одно событие в массиве, к которому имеет доступ основной поток. Вызовите WaitHandle.WaitAll (массив событий) в массиве событий в конце основного потока и вызовите .Set() в событии в конце каждого дочернего потока для сигнального потока дочерних потоков основного потока.
Перед основными выходами резьбы, ниже будет блокироваться, пока все дочерние потоки не вызывает .С() на своих мероприятиях:
WaitHandle.WaitAll (массив событий);
Я думаю, вы имеете в виду что-то вроде «Стандартный метод для ожидания завершения потока». Процессы имеют потоки, а не наоборот. –