2017-06-29 27 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中啓動它們。它應該編譯,但它會產生無限的線程,並會出現問題,所以要小心。聽起來像線程是你的解決方案,雖然