Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Многопоточность и удаление объектов |
Автор: VingradFan 27.9.2012, 21:35 |
Здравствуйте, подскажите, пожалуйста, как решить проблему. Представьте себе класс. Метод этого класса создает новый поток. Этот поток получает в качестве параметра указатель this и оперирует с экземпляром этого класса. После чего, экземпляр класса удаляется и нужно корректно завершить тот новый поток. Проблема в том, что после удаления экземпляра класса, в том новом потоке обращение к удаленному объекту приводит к ошибке. Просьба не предлагать boost и c++11, т. к. нет возможности их использовать. |
Автор: bsa 27.9.2012, 21:44 |
VingradFan, в деструкторе класса добавляем установку флага terminate. А затем вызов join для потока (ожидание завершения потока). В потоке ты должен периодически проверять флаг, когда он будет выставлен, то необходимо завершить работу потока. |
Автор: VingradFan 27.9.2012, 22:03 |
bsa, спасибо! |