LINUX.ORG.RU

QT4 треды


0

0

В одной из функций(функция-слот QMainWindow) создаю экземпляр потока. Поток запускается но как только управление уходит от той функции из которой я вызвал поток, для потока вызывается деструктор, а приложение падает с ошибкой сегментирования. Как этого избежать?



Последнее исправление: kin63camapa (всего исправлений: 1)
Ответ на: комментарий от k0l0b0k
class thr : public QThread { Q_OBJECT public: thr(); ~thr(); protected: void run(); };

thr::thr(){;}

thr::~thr(){;}

void thr::run() { unsigned long chan; BASS_Init(-1,44100,0,0,NULL); chan=BASS_StreamCreateFile(FALSE,"test.mp3",0,0,BASS_SAMPLE_LOOP); BASS_ChannelPlay(chan,FALSE); BASS_ChannelIsActive(chan); #ifdef _WIN32 Sleep(((unsigned long)BASS_ChannelBytes2Seconds(chan,BASS_ChannelGetLength(chan))) * 1000); #else sleep((unsigned long)BASS_ChannelBytes2Seconds(chan,BASS_ChannelGetLength(chan,BASS_POS_BYTE))); #endif BASS_Free(); }

а вызывается он так

 void main_window::play_sound_track() { thr * player = new thr(); player->start(); }
kin63camapa
() автор топика
Ответ на: комментарий от x905

тогда удалится вместе с родителем (родитель майн виндов) мне нужно раньше так что ручками как тока трек отигрался

kin63camapa
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.