|
@@ -1,4 +1,4 @@
|
|
-#ifndef FUNCTIONTRANSFER_H
|
|
|
|
|
|
+#ifndef FUNCTIONTRANSFER_H
|
|
#define FUNCTIONTRANSFER_H
|
|
#define FUNCTIONTRANSFER_H
|
|
|
|
|
|
#include <functional>
|
|
#include <functional>
|
|
@@ -17,7 +17,7 @@ class FunctionTransfer : public QObject
|
|
Q_OBJECT
|
|
Q_OBJECT
|
|
public:
|
|
public:
|
|
|
|
|
|
- ///@brief ¹¹Ô캯Êý
|
|
|
|
|
|
+ ///@brief æž„é€ å‡½æ•°
|
|
explicit FunctionTransfer(QObject *parent = 0);
|
|
explicit FunctionTransfer(QObject *parent = 0);
|
|
~FunctionTransfer();
|
|
~FunctionTransfer();
|
|
|
|
|
|
@@ -25,22 +25,22 @@ public:
|
|
static bool isMainThread();
|
|
static bool isMainThread();
|
|
|
|
|
|
public:
|
|
public:
|
|
- ///@brief ÖÆ¶¨º¯ÊýfÔÚmainÖÐÖ´ÐÐ
|
|
|
|
|
|
+ ///@brief 制定函数f在main䏿‰§è¡Œ
|
|
static void runInMainThread(std::function<void()> f, bool isBlock = false);
|
|
static void runInMainThread(std::function<void()> f, bool isBlock = false);
|
|
|
|
|
|
private:
|
|
private:
|
|
static Qt::HANDLE gMainThreadId;
|
|
static Qt::HANDLE gMainThreadId;
|
|
|
|
|
|
- //ÔÚÈ«¾ÖÊý¾ÝÇøÊµÀý»¯Ò»¸öFunctionTransferµÄʵÀý£¬¸ÃʵÀýËùÔÚµÄÏ߳̾ÍÊÇÖ÷Ï̡߳£
|
|
|
|
|
|
+ //在全局数�区实例化一个FunctionTransfer的实例,该实例所在的线程就是主线程。
|
|
static FunctionTransfer *main_thread_forward;
|
|
static FunctionTransfer *main_thread_forward;
|
|
|
|
|
|
Q_SIGNALS:
|
|
Q_SIGNALS:
|
|
- ///@brief ÔÚ±ðµÄÏß³ÌÓк¯Êý¶ÔÏó´«À´
|
|
|
|
|
|
+ ///@brief åœ¨åˆ«çš„çº¿ç¨‹æœ‰å‡½æ•°å¯¹è±¡ä¼ æ�¥
|
|
void comming(std::function<void()> f);
|
|
void comming(std::function<void()> f);
|
|
void comming_noBlock(std::function<void()> f);
|
|
void comming_noBlock(std::function<void()> f);
|
|
|
|
|
|
private Q_SLOTS:
|
|
private Q_SLOTS:
|
|
- ///@brief Ö´Ðк¯Êý¶ÔÏó
|
|
|
|
|
|
+ ///@brief 执行函数对象
|
|
void slotExec(std::function<void()> f);
|
|
void slotExec(std::function<void()> f);
|
|
|
|
|
|
};
|
|
};
|