В частности, не рекомендуется создавать внутри функции поток, имеющий доступ к ее локальным переменным, если только не будет обеспечено завершение потока до выхода из этой функции.
Или же, присоединив поток до выхода из функции, можно убедиться в завершении его выполнения.