#pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include namespace iflytop { using namespace std; class ZWorkQueue { private: bool m_isJoining = false; unique_ptr m_workQue; queue> m_workQueue; mutex m_QueueMutex; mutex m_mutex; bool workFlag = false; public: ZWorkQueue(); ~ZWorkQueue(); void startSchedule(); void stopSchedule(); bool isWorking() { return workFlag; } bool push(function work); }; } // namespace iflytop