• 4484阅读
  • 2回复

在中断中等待的时候,整个应用程序是冻结在那里了,高手帮帮忙啊。 [复制链接]

上一主题 下一主题
离线fhq1210
 

只看楼主 倒序阅读 楼主  发表于: 2010-04-02
qt刚起步,还望高手们指点一二:
我的程序时这样的。主界面上两个Button,点第一个时进入程序a:打开网卡,将收到的帧作处理,这个是循环的。要进入中断程序等待帧的到来。
点主界面第二个Button b,停止上面处理帧的操作。

问题来了,我点击Button a 时,能进行帧的操作,能完成程序a的功能。但是主界面就冻结了。上面的button b就失效了,点不起啊。
我以为是单一线程的原因,就程序a中启动了一个子线程,让子线程去完成循环收帧的操作,但是我进入子线程以后,主界面依然冻结。为什么啊?高手们帮忙啊。
是不是进入中断程序引起的呢?应该如何修正?
高手们有没有遇到这样情况的?指引个方向吧。

哎,同学明天都出去旅游了。我还要留下来改代码。。。。。。
这也祝大家清明快乐哈。
离线fhq1210

只看该作者 1楼 发表于: 2010-04-03
继续等待中》》》》
离线fhq1210

只看该作者 2楼 发表于: 2010-04-03
1 readthread read_thread;
2 read_thread.start();
3 read_thread.wait();
4 QMessagebox语句;

我想问问大家,就像上面这样的一个创建新线程的例子:若果在主线程中创建了read_thread这样一个线程去执行,然后让子线程去等待自己的结束,这个过程可能很长。那么子线程一旦开始以后,语句(4 Qmessagebox语句;)是不是和read_thread.run()同时执行的啊?也就是说,在这个例子里面read_thread.run()和主界面显示QMessagebox信息时同时出现呢?
我的情况就是,执行了语句123后,可以看到子线程启动了它的工作,但是语句4的qmessagebox一直没有出现。主界面也冻结了。感觉主线程也被阻塞了一样。(子线程里设置有有阻塞)。
快速回复
限100 字节
 
上一个 下一个