我读过很多关于这个问题的帖子,但没有找到这个问题的答案。我想制作一个在后台工作的计时器类,并在完成后执行某些操作。甚至我想一次调用多个异步倒计时的计时器。
我在搜索这个类时发现了它,它似乎有效,但不在后台。我怎样才能将它转换为我想要的?
定时器.h:
#ifndef TIMER_H
#define TIMER_H
#include <thread>
#include <chrono>
class Timer
{
public:
typedef std::chrono::milliseconds Interval;
typedef std::function<void(void)> Timeout;
Timer(const Timeout &timeout);
Timer(const Timeout &timeout,
const Interval &interval,
bool singleShot = true);
void start(bool multiThread = false);
void stop();
bool running() const;
void setSingleShot(bool singleShot);
bool isSingleShot() const;
void setInterval(const Interval &interval);
const Interval &interval() const;
void setTimeout(const Timeout &timeout);
const Timeout &timeout() const;
private:
std::thread _thread;
bool _running = false;
bool _isSingleShot = true;
Interval _interval = …Run Code Online (Sandbox Code Playgroud)