Почему я не могу создать тему, пока l oop? - PullRequest
0 голосов
/ 23 февраля 2020

Я хочу создать новый поток через некоторое время l oop, но это заставляет программу мгновенно получить sh при запуске. Есть идеи как это исправить?

#include <thread>
using namespace std;

void function1()
{

}

int main()
{
    while(true)
    {
        thread thread(function1);
    }
    return 0;
}

1 Ответ

1 голос
/ 23 февраля 2020

Когда ваш std::thread выходит из области видимости, вызывается его деструктор. Деструктор std::thread вызывает std::terminate(), если поток все еще активен. Вы ДОЛЖНЫ join() или detach() std::thread объект, прежде чем он будет уничтожен.

...