运行函数并保持循环运行c ++

时间:2017-06-29 14:10:39

标签: c++

如何在循环内运行一个函数并在函数2完成时仍然保持循环运行而不等待?

int main(){
 function1();
}

function1(){
   while(1){
      function2();   }
}

function2(){
   //some task that needs to do independently while, While loop runs
}

2 个答案:

答案 0 :(得分:4)

您可以启动function2异步:

#include <future>
void function1(){
   while(1){
      std::async(std::launch::async, function2);   
   }
}

请注意,这会产生大量所有调用function2()的实例,你应该扼杀它。

答案 1 :(得分:0)

使用function2生成一个新线程,然后在之前调用它的循环中的函数1中启动它们。它应该编译,但它会产生无限的线程,一些东西会出错,所以要小心。听起来像线程是你的解决方案