Lassen Sie es ein One-Thread-Programm, das eine große functionLarge()
aufruft, die vor der nächsten Codeline in den Aufrufer main
Funktion beenden muss. Angenommen, die Funktion ist gut aufgeteilt und dauert nur lange.
In dieser answer.wait()
wird vorgeschlagen, und ich frage mich, ob es besser ist als:Warten Sie, bis die Funktion beendet ist, bevor Sie das Hauptprogramm (ein Thread) fortsetzen
bool done = false;
// returning true at the end, modifies bigObject by refrence
done = functionLarge(bigObject);
while(!done) { usleep(1000); }
//...can now continue
Gibt es bessere Ansätze, ohne bool
die Rückkehr?
Stoppen Sie einfach 'bool' zu verwenden und lassen Sie das Programm in der normalen Ausführungsreihenfolge laufen? – MikeCAT
Ihr Ansatz ist schlecht, weil der Wert von 'dont' nicht auf magische Weise nach zugewiesen ändern, so wird die Schleife entweder 0 oder unendlich mal genommen werden. – MikeCAT
Sie geben die while nicht ein, bis "functionLarge" fertig ist. – Dacav