OSDN Git Service

ファイル読込を別スレッド化
[gefu/Gefu.git] / abstractworker.cpp
1 #include "abstractworker.h"\r
2 \r
3 #include <QThread>\r
4 \r
5 AbstractWorker::AbstractWorker() :\r
6     QObject(),\r
7     m_mutex(),\r
8     m_abort(false),\r
9     m_thread(new QThread())\r
10 {\r
11     connect(m_thread, SIGNAL(started()), this, SLOT(run()));\r
12     connect(this, SIGNAL(finished()), m_thread, SLOT(quit()));\r
13     connect(this, SIGNAL(finished()), this, SLOT(deleteLater()));\r
14     connect(m_thread, SIGNAL(finished()), m_thread, SLOT(deleteLater()));\r
15 }\r
16 \r
17 void AbstractWorker::abort()\r
18 {\r
19     QMutexLocker lock(&m_mutex);\r
20     m_abort = true;\r
21 }\r
22 \r
23 void AbstractWorker::start()\r
24 {\r
25     this->moveToThread(m_thread);\r
26     m_thread->start();\r
27 }\r
28 \r
29 bool AbstractWorker::isAborted()\r
30 {\r
31     QMutexLocker lock(&m_mutex);\r
32     return m_abort;\r
33 }\r
34 \r