#ifndef VRTHEAD_H #define VRTHEAD_H #include #include #include #include #include #include #include "IVrThreadPool.h" #include "VrSimpleLog.h" typedef std::function ExecFinishFunc; class VrThread { public: VrThread(int index); // 初始化任务 int Init(); // 执行任务 int ExecTask(ThreadExecFunc fExecFunc, void* pParam, ExecFinishFunc pExecFinishFunc, void* pFinishParam); private: void _ExecTask(); private: int m_nIndex; std::atomic m_bRuning; // 执行 ThreadExecFunc m_fExecFunc; void* m_pParam; ExecFinishFunc m_fFinishFunc; void* m_pFinishParam; int m_nRet; // 线程等待交互 std::mutex m_mutexExec; std::condition_variable m_condExec; }; #endif // VRTHEAD_H