std :: threads在Windows窗体中不可用

时间:2018-01-20 19:11:28

标签: c++ multithreading callback windows-forms-designer timed

我有这个可调用的计时器,但是使用Windows表单时,std :: threads不可用

class Timer
{
public:
    template <class callable, class... arguments>
    Timer(int after, bool async, callable&& f, arguments&&... args)
    {
        std::function<typename std::result_of<callable(arguments...)>::type()> task(std::bind(std::forward<callable>(f), std::forward<arguments>(args)...));

        if (async)
        {
            std::thread([after, task]() {
                std::this_thread::sleep_for(std::chrono::milliseconds(after));
                task();
            }).detach();
        }
        else
        {
            std::this_thread::sleep_for(std::chrono::milliseconds(after));
            task();
        }
    }

};

任何人都有替代品吗?

1 个答案:

答案 0 :(得分:0)

使用它来取消定时器和cpp文件是不受管理的,无论如何我都可以使用这个定时器。 more about that here