mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-03 15:45:46 +08:00
[FSD] Thread utility function to "call function in its own thread"
This commit is contained in:
committed by
Mat Sutcliffe
parent
928a76a042
commit
f620147fe6
@@ -12,6 +12,8 @@
|
||||
#include <QObject>
|
||||
#include <QThread>
|
||||
#include <QtGlobal>
|
||||
#include <QPointer>
|
||||
#include <QTimer>
|
||||
|
||||
namespace BlackMisc
|
||||
{
|
||||
@@ -87,4 +89,18 @@ namespace BlackMisc
|
||||
{
|
||||
return threadInfo(QThread::currentThread());
|
||||
}
|
||||
|
||||
bool CThreadUtils::callInObjectThread(QObject *object, std::function<void()> callFunct)
|
||||
{
|
||||
if (!object) { return false; }
|
||||
if (CThreadUtils::isCurrentThreadObjectThread(object)) { return false; }
|
||||
|
||||
QPointer<QObject> myself(object);
|
||||
QTimer::singleShot(0, object, [ = ]
|
||||
{
|
||||
if (!myself) { return; }
|
||||
callFunct();
|
||||
});
|
||||
return true;
|
||||
}
|
||||
} // ns
|
||||
|
||||
Reference in New Issue
Block a user