diff --git a/include/Timer.h b/include/Timer.h index d5cd8eb..bf4a227 100644 --- a/include/Timer.h +++ b/include/Timer.h @@ -80,6 +80,21 @@ namespace ling { return *this; } + template + static void startTask(F &&f, int64_t interval, Args &&...args) { + std::function func = std::bind(std::forward(f), std::forward( + args)...); // 连接函数和参数定义,特殊函数类型,避免左右值错误 + auto task_ptr = std::make_shared>(func); + std::function warpper_func = [task_ptr]() { + (*task_ptr)(); + }; + Task task; + task.id = -1; + task.time = std::time(nullptr) + interval; + task.fun = warpper_func; + addTask(task); + } + /// 启动定时器 void start(int64_t interval);