2017-06-29 2 views
0

Wie führe ich eine Funktion in der Schleife aus und lasse die Schleife weiterhin laufen, ohne zu warten, wenn die Funktion2 abgeschlossen ist?Funktion ausführen und Schleife laufen lassen C++

int main(){ 
function1(); 
} 

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

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

Sie brauchen mehrere Threads. http://en.cppreference.com/w/cpp/thread/thread – 0x5453

+0

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

+0

Sie möchten also 'function1()' ausführen und 'function2()' zur gleichen Zeit? – Javia1492

Antwort

4

können Sie starten function2 async:

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

Sie beachten Sie, dass dies eine Menge von Instanzen erzeugen, die alle Anruf function2(), Sie wahrscheinlich, dass drosseln sollte.

0

Erzeugen Sie einen neuen Thread mit function2 und starten Sie sie dann in Funktion 1 in der Schleife, in der Sie sie zuvor aufgerufen haben. Es sollte kompilieren, aber es wird unendliche Threads spawnen und etwas wird schief gehen, also sei vorsichtig. Klingt wie Threading ist Ihre Lösung obwohl

Verwandte Themen