qt thread with movetothread

来源:互联网 发布:郴州金科软件 编辑:程序博客网 时间:2024/06/06 18:07

The canonical Qt way would look like this:

 QThread *thread = new QThread( ); Task    *task   = new Task(); task->moveToThread(thread); connect( thread, SIGNAL(started()), task, SLOT(doWork()) ); connect( task, SIGNAL(workFinished()), thread, SLOT(quit()) ); //automatically delete thread and task object when work is done: connect( thread, SIGNAL(finished()), task, SLOT(deleteLater()) ); connect( thread, SIGNAL(finished()), thread, SLOT(deleteLater()) ); thread->start();

in case you arent familiar with signals/slots, the Task class would look something like this:

class Task : public QObject{Q_OBJECTpublic:    Task();    ~Task();public slots:    void doWork();signals:    void workFinished();};
原帖地址:http://idas643.blog.163.com/blog/static/167104838201331655619221/
原创粉丝点击