У меня есть следующий код, который, я думаю, работает нормально (простите за глупый / надуманный пример).
void run_thread()
{
std::thread t([]{
while(true)
{
// keep getting chars... to stop peoples eye's hurting : )
char c = getchar();
}
});
t.detach(); // Detach thread
// thread goes out of scope here - but is it ok because its detached??
}
int main()
{
run_thread();
// Wait here forever
while (true) {;}
}
Но после перечитывания я сомневаюсь в этом.Нить т выходит из области видимости.Сейчас я не могу вспомнить, безопасно ли это делать после того, как вы вызвали detach () ... Я думаю, что это так, но, как я уже сказал, у меня есть ноющее сомнение.Кто-нибудь может подтвердить, является ли это хорошей / плохой практикой?