C++ std::async exécuter sur le thread principal

EST-il un moyen de l'exécution d'une fonction de retour sur le thread principal ?

Donc, si j'ai appelé une fonction Asynchrone via du téléchargement d'un fichier et ensuite analysé les données. Il serait alors une fonction de rappel qui irait sur mon principal thread d'INTERFACE utilisateur et de mettre à jour l'INTERFACE utilisateur ?

Je sais que les threads sont égaux à la valeur par défaut implémentation C++ donc je dois créer un pointeur partagé à mon thread principal. Comment pourrais-je faire cela et de passer de la fonction Async non seulement le pointeur partagé pour le thread principal, mais aussi un pointeur vers la fonction que je veux rrun sur elle et ensuite l'exécuter sur ce thread principal ?

Vous ne pouvez pas fournir un rappel à std::async, vous avez besoin de sondage pour la préparation de la valeur du fil qui vous intéresse (ou à partir d'un autre thread et le message du thread d'INTERFACE utilisateur). Bien sûr, vous pourriez vous enveloppez-le véritable fonction dans une autre fonction qui envoie le message pour vous...
Vous pouvez utiliser get() pour synchroniser avec un fil.
Serait signaux de travailler avec cela ?
En général, vous ne pouvez pas exécuter une fonction sur un autre thread. Si que l'autre thread de l'exécuter? La grande exception est l'exécution d'une fonction sur un nouveau fil de discussion, ou d'un fil dans un pool de threads. Ils sont, par définition, pas de suite quelque chose d'autre, afin qu'ils puissent exécuter votre fonction à droite maintenant.
Serait d'avoir la mainthread sondage de l'avenir être une solution viable, si j'avais une minuterie sur le thread principal qui appelle une fonction qui vérifie si une action avait été fait, puis appelle la fonction de rappel avec les contrats à terme de résultat, cela fonctionnerait-il ?

OriginalL'auteur James Campbell | 2013-06-27