小编Aro*_*ron的帖子

C++ 非阻塞异步定时器

我读过很多关于这个问题的帖子,但没有找到这个问题的答案。我想制作一个在后台工作的计时器类,并在完成后执行某些操作。甚至我想一次调用多个异步倒计时的计时器。

我在搜索这个类时发现了它,它似乎有效,但不在后台。我怎样才能将它转换为我想要的?

定时器.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)

c++ multithreading background timer

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

background ×1

c++ ×1

multithreading ×1

timer ×1