我正在寻找一种方法让一个整数每10秒左右不断增加。我知道如何让整数增加,但我不知道如何让它继续增加,无论其他程序当前发生了什么。
答案 0 :(得分:2)
请使用std::thread
。
创建一个功能
void incrementThread(int &i)
{
while(someCondition)
{
//sleep for 10 seconds
//increment your value
i++;
std::this_thread::sleep_for(std::chrono::duration<int>(10));
}
}
现在来自main
:
int main()
{
int i = 0;
std::thread t(incrementThread, std::ref(i));
t.detach() // or t.join()
}
答案 1 :(得分:1)
使用 C ++ 11 样式:
#include <atomic>
#include <iostream>
#include <thread>
int main()
{
std::atomic<int> i{0};
std::thread thread_time([&]() { while (true) { ++i; std::this_thread::sleep_for(std::chrono::seconds(10)); } });
while (true) {
std::cout << i.load() << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(10));
}
thread_time.join();
return 0;
}