首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

Qt有没有中断?Qt多线程如何实现

2012-09-10 
Qt有没有中断?Qt多线程怎么实现?请高手讲解个大概思路,谢谢[解决办法]你說的中斷是指從主線程中斷其他的線

Qt有没有中断?Qt多线程怎么实现?
请高手讲解个大概思路,谢谢

[解决办法]
你說的中斷是指從主線程中斷其他的線程嗎?
可以從主線程發出signal給其他的線程
要求他們中斷,advanced Qt programming上有範例
一個簡單的例子,不保證可以跑

副線程


然後將主線程的signal連接到副線程的slot就好

ps : 我只是個初學者,會提起翻這本書是因為他的model/view講得最詳細
[解决办法]
補上程式碼

C/C++ code
class heavyJob : public QThread{  Q_OBJECT    public:    heavyJob() : stop_(false) {}    heabyJob(heavyJob const&) = delete;    heavyJob& operator=(heavyJob const&) = delete;  public slots:    void setStop(bool stop) { stop_ = stop; }   protected :    void run()    {      for(....)       {        if(stop_) return;      }    }  private:    volatile bool stop_;}
[解决办法]
在run()里面调用QThread::exec();进行线程的事件循环。start之后会进入run(),然后创建一个对象,并将对象moveToThread 或者你直接在run中创建对象,并进行信号与槽关联, 在主线程发送信号,槽函数将在次线程执行。
[解决办法]
過去在用Qt寫線程的時候有個常犯的錯誤就是在QThread中呼叫moveToThread

下篇有很詳細的解釋
http://labs.qt.nokia.com/2010/06/17/youre-doing-it-wrong/

热点排行