#pragma once #include #include #include #include #include #include #include #include #include #include "Aclapi.h" #include "dt.h" class __declspec(dllexport) CyclicTaskExecutor { private: static CyclicTaskExecutor* m_pTaskExecutor; static std::mutex m_Mutex; std::atomic running_{ true }; std::thread worker_; std::vector> tasks_; // 任务列表 mutable std::mutex mutex_; std::condition_variable taskAdded_; size_t currentTaskIndex_{ 0 }; public: static CyclicTaskExecutor* GetInstance(); CyclicTaskExecutor(); ~CyclicTaskExecutor(); void AddTask(std::function task); // 获取当前任务数量 size_t TaskCount(); // 清空所有任务 void ClearTasks(); };