• 4020阅读
  • 1回复

[已解决]关于多线程,为何会阻塞,难道线程没有启动? [复制链接]

上一主题 下一主题
离线tzqdo
 
只看楼主 倒序阅读 楼主  发表于: 2010-04-12
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
  1. #pragma once
  2. #include <QThread>
  3. class FeedBack:public QThread
  4. {
  5. public:
  6.     FeedBack(void);
  7.     void run();
  8. public:
  9.     ~FeedBack(void);
  10. };


  1. #include "FeedBack.h"
  2. FeedBack::FeedBack(void)
  3. {
  4. }
  5. FeedBack::~FeedBack(void)
  6. {
  7. }
  8. void FeedBack::run()
  9. {
  10.     int i=0;
  11.     while(i<88888888){
  12.         std::cout<<i;
  13.         //delay(3);
  14.         i++;
  15.     }
  16. }


  1. void MainWindow::on_actionFeedBack_toggled( bool checked)
  2. {
  3.     qRegisterMetaType<QTextCursor>("QTextCursor");
  4.     if (checked)
  5.     {
  6.         feed->start(QThread::HighPriority);
  7.     }
  8.     else
  9.     {
  10.         feed->wait();
  11.     }
  12. }


on_actionFeedBack_toggled执行后,控制台上就在输出数字,而主界面就失去响应了。错在哪里了?
[ 此帖被tzqdo在2010-04-12 14:42重新编辑 ]
离线tzqdo
只看该作者 1楼 发表于: 2010-04-12
不好意思,收回提问start()后面我紧接着调用wait()了
快速回复
限100 字节
 
上一个 下一个