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;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM