c++ std::thread + lambda 实现计时器
bool wait_for_wake = false; std::mutex process_mutex; std::condition_variable_any process_cond; std::unique_lock<std::mutex> lock(process_mutex); auto Timer = [&process_mutex, &process_cond](const int &wait_time) { std::this_thread::sleep_for(std::chrono::milliseconds(wait_time)); process_cond.notify_one(); }; // use auto wait_time = 50; std::thread(Timer, wait_time).detach(); wait_for_wake = true; while (wait_for_wake) { process_cond.wait(lock); wait_for_wake = false; }