Вам нужно дождаться завершения всех потоков, или вам просто нужно проверить?
Если вам просто нужно проверить, вы можете иметь переменную, которая хранит количество выполняемых в данный момент задач, иInterlockedIncrement
это в начале потока, затем InterlockedDecrement
это в конце.
Если вам нужно подождать, и у вас есть небольшое количество потоков, каждый поток может иметь собственное событие ручного сбросачто вы ResetEvent
, когда начинается поток и SetEvent
, когда он заканчивается.Тогда просто WaitForMultipleObjects
для всех событий.