Создание потоков, CRT и DLL, как это должно быть сделано?

Поэтому я понимаю, что CreateThread и CRT могут приводить к утечкам памяти, сигналу не работает, и следует использовать функции _beginthread или _beginthreadex.

Это все очень хорошо при написании приложения, но как насчет тех, которые пишут dll и тому подобное для других приложений (будь то простые dll, com-объекты, плагины и т. Д.). Невозможно гарантировать, как был создан поток, вызывающий в DLL, даже если они использовали __beginthread (ex), вполне вероятно, что у них другая реализация \ версия CRT.

Итак, что именно должны делать программисты? Не используете ЭЛТ? Создать внутренний поток и разгрузить всю работу на него (без использования CRT с вызывающим потоком)? Какой-то трюк с DllMain и возможностью присоединения / отсоединения для правильной настройки и завершения всех потоков независимо от того, как они создаются?

Ответы на вопрос(2)

Ваш ответ на вопрос