Les méthodes asynchrones peuvent-elles être appelées dans le constructeur ?
Ce problème survient souvent lorsque l'on tente d'intégrer du code asynchrone dans les constructeurs de classes. Plus précisément, le but de cet exemple est d'appeler la méthode getWritings()
(qui analyse les données JSON) lors de l'instanciation d'un objet.
Le problème
Initialement, appeler getWritings()
directement dans le constructeur et en faire une méthode asynchrone entraînait une valeur de retour nulle et un LongListView
vide. Essayer d'obtenir le résultat via getWritings().Result
pour résoudre ce problème entraîne le blocage du fil de discussion de l'interface utilisateur.
Solution
L'approche recommandée consiste à concevoir votre application pour gérer la nature asynchrone de la récupération de données. Le constructeur doit configurer une vue pour indiquer que les données sont en cours de téléchargement, et la mise à jour réelle des données doit avoir lieu une fois le téléchargement terminé.
Des ressources supplémentaires sur ce sujet incluent un article de blog sur les constructeurs asynchrones, un article MSDN sur la liaison de données asynchrones dans les scénarios MVVM et un article MSDN sur les meilleures pratiques asynchrones, qui met l'accent sur le fait d'éviter async void
L'importance de la méthode.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!