#pragma once #include #include #include #include #include #include namespace ZL { class TaskManager { private: boost::asio::io_context ioContext; std::unique_ptr> workGuard; std::vector workers; public: //TaskManager(size_t threadCount = std::thread::hardware_concurrency()); TaskManager(size_t threadCount = 2); // Метод для добавления фоновой задачи void EnqueueBackgroundTask(std::function task); // Graceful shutdown ~TaskManager(); boost::asio::io_context& getIOContext() { return ioContext; } }; class MainThreadHandler { private: std::queue> mainThreadTasks; std::mutex mainThreadMutex; public: void EnqueueMainThreadTask(std::function task); // Выполнение задач по одной (или пачкой) за кадр void processMainThreadTasks(); }; } // namespace ZL