Вопрос странный конечно, но почему-то закрывается окно, созданное с detach после закрытия приложения которое его создало. Что-то с сигналами?
Код запуска:
std::thread thw
{
[=]()
{
// создание нового окна
}
};
if (thw.joinable())
thw.detach();
Завершение функции main() является завершением программы согласно стандарту. Поэтому неважно, Windows это или OS/2 — detached поток не влияет на время жизни программы. Такие потоки как раз и создаются тогда, когда совершенно не важно завершится поток или нет — есть либо какие-то методы опроса таких потоков, либо же их уничтожение в середине работы не имеет значения (хотя это выглядит просто плохим дизайном). В подавляющем большинстве ситуаций, отсутствие join на созданном потоке, это просто ошибка.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей