История изменений
Исправление m0rph, (текущая версия) :
Используй std::thread и атомарную переменную (например std::atomic_flag) в качестве признака выхода из цикла.
std::thread workerThread;
std::atomic_flag exitFlag;
exitFlag.test_and_set();
workerThread = std::thread(threadProc);
void threadProc()
{
while(exitFlag.test_and_set()) {
// Do something
}
}
Когда захочешь завершить поток, просто установи этот флаг:
exitFlag.clear();
if(workerThread.joinable())
workerThread.join();
Исходная версия m0rph, :
Используй std::thread и атомарную переменную (например std::atomic_flag) в качестве признака выхода из цикла.
std::thread workerThread;
std::atomic_flag exitFlag;
exitFlag.test_and_set();
workerThread = std::thread(threadProc);
void threadProc()
{
while(exitFlag.test_and_set()) {
// Do something
}
}
Когда захочешь завершить поток, просто установи этот флаг:
exitFlag.clear();
if(workerThread.joinable())
workerThread.join();