首页| 论坛| 消息

标题:多线程中无法用while(1)
作者:demoxie
日期:2010-12-20 09:01
内容:

请教高手,我在多线程中使用while(1),结果窗口始终无法出现,把它改为for()后,就正常了。
请问我的错误在哪?该如何写。
谢谢。
#include "thread1.h"
Thread1::Thread1(QObject *parent,QLabel *label):QThread(parent)
{
l=label;
count=0;
char str[10];
while(1){
count++;
sprintf(str,"%d",count);
l->setText(str);
}
}
void Thread1::run()
{
exec();
}


#1 [demoxie 12-20 09:28]
不好意思,我说错了。当我改为for()得时候,当for执行完后,窗口才出现。只有用connect (timeout()),时,窗口才能第一时间出现。
郁闷啊。
#2 [demoxie 12-20 09:39]
在linux的多线程中是可以这样做的。为何在qt中就不行了啊。郁闷啊
#3 [zzz945 12-20 13:57]
你怎么把while(1)放进构造函数里啦,当然主线程会冻结
#4 [spitbreak 01-23 17:08]
循环跳出条件呢???
#5 [XChinux 01-28 22:35]
QThread在的run()函数里的东西才会在新线程中执行。构造函数中的那些东西是你在创建这个线程对象的那个线程里执行的。

回复 发表
主题 版块