C ++ - 不断递增整数

时间:2015-06-05 11:56:14

标签: c++ increment

我正在寻找一种方法让一个整数每10秒左右不断增加。我知道如何让整数增加,但我不知道如何让它继续增加,无论其他程序当前发生了什么。

2 个答案:

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