unsplash undplash images for faq español creative commons commercial c# windows-phone-8 task-parallel-library async-await c#-5.0

c# - undplash - ¿Es posible usar Task<bool> en condiciones if?



unsplash faq (2)

En Windows Phone 8 tengo el método public async Task<bool> authentication() . El tipo de retorno de la función es bool pero cuando traté de usar su valor devuelto en una condición if , el error dice que no puede convertir Task<bool> en bool .

public async Task<bool> authentication() { var pairs = new List<KeyValuePair<string, string>> { new KeyValuePair<string, string> ("user", _username), new KeyValuePair<string, string> ("password", _password) }; var serverData = serverConnection.connect("login.php", pairs); RootObject json = JsonConvert.DeserializeObject<RootObject>(await serverData); if (json.logined != "false") { _firsname = json.data.firsname; _lastname = json.data.lastname; _id = json.data.id; _phone = json.data.phone; _ProfilePic = json.data.profilePic; _thumbnail = json.data.thumbnail; _email = json.data.email; return true; } else return false; }


El tipo de devolución de su función es Task<bool> , no bool sí. Para obtener el resultado, debe usar la palabra clave await :

bool result = await authentication();

Puede leer la sección "Qué sucede en un método async / await " de este artículo de MSDN para obtener más información sobre la función de lenguaje async / await .


Tienes que await la tarea:

bool result = await authentication();

O bien, puede usar su método alternativo favorito de esperar en una Task .