Không có hẹn giờ cụ thể trong thư viện chuẩn, nhưng nó dễ dàng, đủ để thực hiện một:
#include <thread>
template <typename Duration, typename Function>
void timer(Duration const & d, Function const & f)
{
std::thread([d,f](){
std::this_thread::sleep_for(d);
f();
}).detach();
}
Ví dụ về sử dụng:
#include <chrono>
#include <iostream>
void hello() {std::cout << "Hello!\n";}
int main()
{
timer(std::chrono::seconds(5), &hello);
std::cout << "Launched\n";
std::this_thread::sleep_for(std::chrono::seconds(10));
}
Ghi chú rằng chức năng được gọi vào thread khác, vì vậy đảm bảo mọi dữ liệu mà nó truy cập được bảo vệ phù hợp.
Nguồn
2012-08-01 17:09:30
IMO, thay vì đưa vào thư viện, bạn có thể viết hẹn giờ của chính mình một cách nhanh chóng và gọn gàng. Sinh ra một chủ đề mới, liên tục gọi chức năng của bạn và sau đó làm cho thread ngủ một thời gian. – SuperSaiyan