zoukankan      html  css  js  c++  java
  • QThread用法

        采用Qt的QThread类编写多线程程序已经很长一段时间了,但是直到今天才发现一直都在错误的使用QThread,关于QThread的使用,有一句话总结得很好:

    QThread 应该被看做是操作系统线程的接口或控制点,而不应该包含需要在新线程中运行的代码。需要运行的代码应该放到一个QObject的子类中,然后将该子类的对象moveToThread到新线程中。

    参考来源:http://hi.baidu.com/dbzhang800/item/c14c97dd15318d17e1f46f41

        一段参考代码如下:

    #include <QtCore/QCoreApplication> 
    #include <QtCore/QObject> 
    #include <QtCore/QThread> 
    #include <QtCore/QDebug> 
    
    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(); 
    }

    代码来源:http://hi.baidu.com/dbzhang800/item/1e931317d37d71dcbe904247

  • 相关阅读:
    开发趋势
    常用的meta
    meta基础
    HTTP请求方法GET和POST
    same-origin policy----wikipedia
    跨域——同源策略(译)
    DNS问答
    TCP/IP的整理
    鉴权方法
    Web攻击技术---OWASP top
  • 原文地址:https://www.cnblogs.com/ppffs/p/3181379.html
Copyright © 2011-2022 走看看