#ifndef __GuiThread_H__ #define __GuiThread_H__ #include #include typedef std::function GuiInvoker_Func; class GuiInvoker : public QThread { Q_OBJECT public: GuiInvoker(QObject* parent = Q_NULLPTR); virtual ~GuiInvoker(); void Invoke(GuiInvoker_Func pFunc, void* pParams, void* pOwner); private: void start(); void wait(); protected: virtual void run() override; private slots: void OnInvoke(GuiInvoker_Func pFunc, void* pParams, void* pOwner); signals: void sigInvoke(GuiInvoker_Func pFunc, void* pParams, void* pOwner); }; #endif