• 4831阅读
  • 2回复

[提问]关于qt多线程的问题 [复制链接]

上一主题 下一主题
离线feiyang0725
 

只看楼主 倒序阅读 楼主  发表于: 2012-07-11
我一个的QT程序里面有一个网络数据包接收函数,函数功能就是一直等待数据包。。我就用一个线程启动这个网络函数,然后在主线程里面干别的。
现在遇到问题是,我点击关闭的时候后台程序依然在运行无法关闭。。
我的关闭函数
if(QThreadPool::globalInstance()->activeThreadCount())
QThreadPool::globalInstance()->thread()->exit();
event->accept();
这样无法关闭。因为我的网络函数线程会一直等待网络数据包,不会结束。。
离线passion_wu
只看该作者 1楼 发表于: 2012-07-13
如果你的线程没有进入事件循环exit是不起作用的。
如果你的线程是一个while循环,常用的方法是:
while(!bStop){
      //do something
}
停止线程的时候一般做法是
bStop = true;
thread.waite();
离线feiyang0725

只看该作者 2楼 发表于: 2012-07-18
程序的是循环等待数据包,这个函数是网络库函数,我只能调用,没办法在里面return。
现在的想法是,在关闭事件中强制关闭所有线程。该怎么做?
快速回复
限100 字节
 
上一个 下一个