async_task.h 361 B

1234567891011121314151617181920212223
  1. #pragma once
  2. #include <functional>
  3. #include "Poco/Task.h"
  4. #include "Poco/TaskManager.h"
  5. namespace qcloud_cos {
  6. using TaskFunc = std::function<void()>;
  7. class AsyncTask : public Poco::Task {
  8. public:
  9. AsyncTask(TaskFunc &&f) : Task("AsyncTask"), _f(f) {}
  10. ~AsyncTask() {}
  11. void runTask() { _f(); }
  12. private:
  13. TaskFunc _f;
  14. };
  15. } // namespace qcloud_cos