C++ std::async laufen auf Haupt-thread

Gibt es eine Möglichkeit der Ausführung einer Funktion zurück auf der main-thread ?

Also, wenn ich nannte eine Funktion über die Funktion Async, dass eine Datei heruntergeladen und dann analysiert die Daten. Es würde dann eine callback-Funktion aufrufen, die laufen würde auf meinem Haupt-UI-thread und die Aktualisierung der Benutzeroberfläche ?

Ich weiß, die threads sind gleich in der Standard-C++ - Implementierung, so würde ich erstellen, ein shared pointer auf meinem Haupt-thread. Wie kann ich dies tun, und übergeben Sie die Async-Funktion nicht nur der shared pointer zu den Haupt-thread aber auch ein Zeiger auf die Funktion möchte ich rrun auf es und führen Sie es auf das Haupt-thread ?

  • Sie können einen callback anbieten mit std::async, müssen Sie die Umfrage für die Bereitschaft der Wert aus dem thread, der dich interessiert (oder aus einem anderen thread und die Nachricht der UI-thread). Natürlich könnten Sie wickeln die echte Funktion in einer anderen Funktion, die die Nachricht sendet, für Sie...
  • Sie können get() synchronisieren mit einem Faden.
  • Würde Signale arbeiten mit diesem ?
  • Im Allgemeinen, Sie können nicht einfach eine Funktion auszuführen, in einem anderen thread. Wenn würde anderen thread ausführen? Die große Ausnahme ist das ausführen einer Funktion in einem neuen thread, oder eine freie Threads im threadpool. Sie sind per definition nicht läuft, alles andere, so dass Sie können führen Sie die Funktion jetzt.
  • Würde mit der mainthread Umfrage der Zukunft eine praktikable Lösung, wenn ich also einen timer auf der Haupt-thread, dass heißt eine Funktion, die überprüft, ob eine Aktion schon gemacht wurde und rief dann der Rückruf mit der futures resultieren, würde das funktionieren ?
Schreibe einen Kommentar