Bonjour,
Je développe une appli Windows phone 8.2 en C# sous VS Community.
Je n'arrive pas a récupérer la valeur de retour des fonctions asynchrones, malgré les exemples pris sur le Web concernant cette implémentation.
Pour illustrer mon problème par un exemple simple :
je crée une fonction asynchrone qui me retourne un entier :
Le constructeur de ma page effectue la récupération de mon entier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 private async Task<int> litentierAsync() { int x; var today = await Task.FromResult<string>(DateTime.Now.DayOfWeek.ToString()); if (today.First() == 'S') x = 16; else x = 5; return x; }
Si j'essaye de récupérer le retour de la fonction dans un entier comme ci-dessus, Visual me dit qu'il ne peut pas convertir System.Threading.Tasks.Task<int> en int ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public App() { this.InitializeComponent(); this.Suspending += this.OnSuspending; Task<int> y = litentierAsync(); int z = y; }
Et mes tentatives de cast génèrent des erreurs du style :
"Unable to cast object of type 'System.Threading.Tasks.Task`1[System.Int32]' to type 'System.IConvertible'."
Quelqu'un sait-il comment procéder pour récupérer un retour fait en Task<T> ?
Merci par avance
Partager