Пусть имеется класс, выполняющий запуск некоторой работы в потоке:
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;
  }
}







