Эта тема, судя по поиску, много раз обсуждаласт но для себя я решения не нашел
Вопрос: Как можно главному потоку узнать что рабочий поток завершился? При использовании всяких интересных функций вроде WaitForSingleObject(...), Sleep(...) и подобных в _главном_потоке_ всё замирает: главный поток ожидает события (которое должно оповестить о завершении рабочего потока), а рабочий поток не может установить это событие как раз по причине того, что главный поток весь в ожидании
Убивать поток функцией TerminateThread(...) никак нельзя — будет утечка памяти (в моем случае).