码迷,mamicode.com
首页 > 编程语言 > 详细

Qt使用线程以及线程同步

时间:2014-10-18 15:30:25      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   io   ar   使用   strong   sp   

把信号连接过来的事件,放到线程中的槽函数处理,达到该槽函数的处理不会卡主线程的效果

例子如下:

class Dummy : public QObject
{
   Q_OBJECT
public:
   Dummy(QObject* parent = 0) : QObject(parent){}
public slots:
   void emitsig() {emit sig();}
signals:
   void sig();
};
///////////////////////////////////////////////////////////////////////////////////////
class Object : public QObject
{
    Q_OBJECT
public :
Object(){}
public slots:
    void slot(){qDebug() << "from thread slot:" << QThread::currentThreadId();}
};
///////////////////////////////////////////////////////////////////////////////////////
include "main.moc"
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    qDebug() << "main thread:" << QThread::currentThreadId();

    QThread thread;
Object obj;
    Dummy dummy;

    obj.moveToThread(&thread);//把槽函数操作移到子线程中处理
    QObject::connect(&dummy, SIGNAL(sig()), &obj, SLOT(slot()));
    thread.start();
    dummy.emitsig();//发送测试信号

return a.exec();
}
// 输出:
// main thread: 0x1a5c
// from thread slot: 0x186c

线程的ID不同,表明slot在子线程中运行 

具体可参考http://blog.csdn.net/c05170519/article/details/6459809

Qt使用线程以及线程同步

标签:style   blog   http   color   io   ar   使用   strong   sp   

原文地址:http://www.cnblogs.com/zw-h/p/4033051.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!