RunAsync - Wie kann ich erwarten den Abschluss der Arbeit auf dem UI-thread?

Beim warten auf Dispatcher.RunAsync die Fortsetzung tritt auf, wenn die Arbeit geplant ist, und nicht, wenn die Arbeit abgeschlossen hat. Wie kann ich erwarten, die Arbeit abschließen?

Bearbeiten

Meiner ursprünglichen Frage angenommen die vorzeitige Fortsetzung war bedingt durch das design der API, also hier die eigentliche Frage.

Beim warten auf Dispatcher.RunAsync unter Verwendung einer asynchronen Delegaten, mit await innerhalb der Delegat-code, der Fortsetzung tritt auf, wenn die await aufgetreten ist, nicht, wenn die Arbeit abgeschlossen hat. Wie kann ich erwarten, die Arbeit abschließen?

Edit 2

Einen Grund, müssen Sie möglicherweise die Versendung der Arbeit, die bereits auf dem UI-thread zu umgehen subtile timing und layout-Probleme. Es ist durchaus üblich für Werte der Größe und Position von Elementen in der visuellen Struktur, um in Fluss und Planung der Arbeit für eine spätere iteration der Benutzeroberfläche helfen können.

  • Dies ist nicht genau richtig. Die Fortsetzung tritt auf, wenn die lambda zurück. Und wenn die lambda ist eigentlich async void, das ist, bevor Sie es tatsächlich abgeschlossen ist. Aber warten RunAsync() funktioniert gut für synchrone lambdas.
  • Ich dachte auch, das könnte der Fall sein, aber ich konnte nicht finden, keine Dokumentation, Wann RunAsync soll zurückkehren.
InformationsquelleAutor Luke Puplett | 2013-10-02
Schreibe einen Kommentar