• 10411阅读
  • 6回复

如何立即结束一个线程 [复制链接]

上一主题 下一主题
离线lzian
 
只看楼主 倒序阅读 楼主  发表于: 2008-04-22
— 本帖被 XChinux 执行加亮操作(2008-06-16) —
QThread类里不知道怎么立即结束一个正在运行的线程?
terminate()很不好用,会导致程序长时间阻塞
离线lzian
只看该作者 1楼 发表于: 2008-04-22
用别的方法搞定了,
添加一个条件,想要终止线程的时候,直接让run跳转到最后,让线程自动结束。
离线gery_sunjian
只看该作者 2楼 发表于: 2008-04-22
delete 掉 这个 线程 对象 如何?
离线lzian
只看该作者 3楼 发表于: 2008-04-23
有deletelater()函数,也有destroyed(),但前提是在事件循环中才有效。
事件循环我还不太熟悉。用QT开发才两个月。
离线XChinux

只看该作者 4楼 发表于: 2008-04-23
quit();
wait();
行不行?
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线lzian
只看该作者 5楼 发表于: 2008-04-23
只有在线程内exec()启动的事件循环后,用quit() / exit() / destorylater()等函数结束事件循环,不知道怎么用事件循环?
wait()函数只有在线程运行结束后或超过超时时间才结束进程。我试过了,不能在线程运行的时候关闭线程。如果用terminate()结合wait()的话,程序会死掉。
目前只能通过更改run()的算法,添加结束标志,通过更改标志来结束run()
离线bestvalentin
只看该作者 6楼 发表于: 2008-06-16
正好遇到这个问题,多谢各位
快速回复
限100 字节
 
上一个 下一个