2016-07-19 21 views
0

Meine vollständige Kinvey und Xamarin Async-API funktioniert nicht mit den Methoden warten/async. Ich weiß nicht, wo das Problem ist. Ich habe keine Fehler in meinem Code finden, aber die allgemeinen Methoden, die ich verwenden sollen in Ordnung sein, wieNein Async-Methode funktioniert

User _User= await KinveyXamarin._Client.User().LoginAsync(); 

ich im Internet gesucht, aber ich habe keine ähnlichen Probleme finden. Sie gibt den Compile_time Fehler

Fehler CS4033: Der ‚erwarten‘ Operator kann nur innerhalb eines Asynchron Verfahren verwendet werden. Erwägen Sie, diese Methode mit dem Modifizierer 'async' zu markieren und ihren Rückgabetyp in 'Task' zu ändern.

Ich weiß wirklich nicht, was dieses Problem verursacht, das sind fast meine ersten Schritte mit asynchroner API und Kinvey. Jede Hilfe würde sehr geschätzt werden.

+2

Da der Fehler besagt, dass die Methode, in der Sie asynchrone Methoden verwenden, auch als async markiert sein muss –

Antwort

2

Die Methode, in der Sie await schreiben, sollte eine async Methode selbst sein.

public async Task MyMethodAsync() 
{ 
    User _User = await KinveyXamarin._Client.User().LoginAsync(); 
    // more code 
} 

Wenn Sie ein Objekt zurückgeben möchten, verwenden Sie Task<T>:

public async Task<User> MyMethodAsync() 
{ 
    User _User = await KinveyXamarin._Client.User().LoginAsync(); 
    // more code 

    return _User; 
} 

Zusätzliche Anmerkung: Bitte versuchen Sie es zu avoid async void, es ist böse.

Bearbeiten: Es ist eine bewährte Methode, Ihre asynchronen Methoden auf Async zu beenden, um dies für alle Personen zu verdeutlichen, die Ihren Code verwenden.