mirror of
https://github.com/jaredtao/TaoQuick.git
synced 2025-01-31 21:22:58 +08:00
20 lines
570 B
C++
20 lines
570 B
C++
#include "ThreadPool.h"
|
|
|
|
#include <QThreadPool>
|
|
namespace TaoCommon {
|
|
ThreadObject::ThreadObject(const WorkCallback &work) : m_workCall(work) {}
|
|
void ThreadObject::run()
|
|
{
|
|
bool ok = m_workCall();
|
|
emit readyResult(ok);
|
|
}
|
|
// workCall in sub thread, resultCall in main thread
|
|
void ThreadPool::work(const WorkCallback &workCall, const WorkResultCallback &resultCall)
|
|
{
|
|
ThreadObject *obj = new ThreadObject(workCall);
|
|
obj->setAutoDelete(true);
|
|
connect(obj, &ThreadObject::readyResult, this, resultCall);
|
|
QThreadPool::globalInstance()->start(obj);
|
|
}
|
|
}
|