LINUX.ORG.RU

Сообщения clanproger

 

Прервать C++ поток

Форум — Development

Пусть имеется класс, выполняющий запуск некоторой работы в потоке:

void MyThread::run() {
  if (!ThreadPtr) {
    ThreadPtr  = new std::thread(&MyThread::realWork, this);
    ThreadPtr->detach();
  }
}

При этом при этом realWork содержит вызов некоторой долгоработающей функции из сторонней библиотеки

MyThread::realWork(){ hardlib.hardWork(); ...}

Как можно прервать запущенный поток? Корректно ли просто сделать delete?

void MyThread::break() {
  if (ThreadPtr) {
    delete ThreadPtr;
    ThreadPtr=null;
  }

}

 ,

clanproger
()

RSS подписка на новые темы