2017-06-29 96 views
0

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

int main(){ 
function1(); 
} 

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

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

你需要多个线程。 http://en.cppreference.com/w/cpp/thread/thread – 0x5453

+0

http://man7.org/linux/man-pages/man3/popen.3.html – Roelant

+0

所以你想运行'function1()'和'function2()'在同一时间? – Javia1492

回答

4

可以启动function2异步:

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

请注意,这会产生大量的,所有的呼叫function2(),你应该节制该实例。

0

用函数2产生一个新线程,然后在你先前调用它的循环中的函数1中启动它们。它应该编译,但它会产生无限的线程,并会出现问题,所以要小心。听起来像线程是你的解决方案,虽然