C # / MonoTouch: So rufen Sie eine Async-Methode auf, wenn ein ViewController erstellt wird / angezeigt wird

9

Xamarin veröffentlicht Unterstützung für async / await , was die Entwicklung von Responsive UI in mobilen Plattformen wirklich vereinfacht. Ich möchte es ausnutzen und die Programmierebene meines Codes erhöhen, indem ich ab jetzt async / awarte-Sachen verwende.

Da ich jedoch relativ neu in C # bin und async / await noch nicht verwendet habe, bevor ich Probleme mit "hooks" in meinem Code habe, kann ich async Methoden aufrufen. Ich weiß, dass Event-Handler die typischen Orte sind (wo IoC passiert), aber stellen Sie sich folgendes Szenario vor:

Ich möchte die Hintergrundaufgabe starten, wenn ein ViewController geladen ist (im Gegensatz zu wenn eine Schaltfläche gedrückt wird ).

%Vor%

Offensichtlich kann ich nicht auf PerformMyTaskAsync in ViewDidLoad warten, weil ViewDidLoad weder eine asynchrone Methode noch ein Event-Handler ist.

Was ist der "alternative" Ansatz zum Starten einer Hintergrundaufgabe, wenn ein Ansichtscontroller geladen wird (oder erscheint, was auch immer)?

    
Eduardo Coelho 16.08.2013, 00:32
quelle

2 Antworten

18

Die neuesten Xamarin Stable Channel-Versionen unterstützen Async / Await-Überladungen für ViewController Lifecycle-Methoden. Probieren Sie:

%Vor%     
kwcto 16.08.2013, 09:05
quelle
1

Nicht sicher, ob dies der "beste" Ansatz ist, aber haben Sie versucht, ein Ereignis aus ViewDidLoad () auszulösen und dann im Handler für dieses Ereignis Ihren Async-Code zu starten?

    
Jason 16.08.2013 02:45
quelle