RunAsync - Comment puis-je attendre la fin des travaux sur le thread de l'INTERFACE utilisateur?

En attente de Dispatcher.RunAsync la poursuite se produit lorsque le travail est prévu, non pas lorsque le travail est terminé. Comment puis-je attendre le travail de remplir?

Modifier

Ma question initiale a assumé le prématuré de continuation a été causé par la conception de l'API, voici donc la vraie question.

En attente de Dispatcher.RunAsync à l'aide d'un asynchrones délégué, à l'aide de await au sein du délégué du code, la poursuite se produit lorsque le await est rencontré, non pas lorsque le travail est terminé. Comment puis-je attendre le travail de remplir?

Edit 2

Une raison, vous devrez peut-être de répartition du travail qui est déjà sur le thread de l'INTERFACE utilisateur est de contourner subtile calendrier et les problèmes d'implantation. Il est assez commun pour les valeurs de tailles et positions des éléments dans l'arborescence visuelle en mouvement et d'établissement du programme de travail pour une version ultérieure de l'INTERFACE utilisateur peut aider.

Ce n'est pas tout à fait exact. La poursuite se produit lorsque le lambda retourne. Et lorsque que lambda est en fait async void, c'est avant qu'il se termine en réalité. Mais en attendant RunAsync() fonctionne parfaitement synchrone lambdas.
J'ai aussi pensé que ce pourrait être le cas, mais je ne pouvais pas trouver toute la documentation quand RunAsync est censé y retourner.

OriginalL'auteur Luke Puplett | 2013-10-02