Comment puis-je faire appel asynchrone de la méthode du constructeur?
J'ai besoin d'appeler une async
méthode de mon Form1
constructeur. Depuis un constructeur ne peut pas avoir un type de retour, je ne peux pas ajouter un async void
. J'ai lu que constructeur statique peut être async
mais j'ai besoin d'appeler les méthodes du constructeur qui ne sont pas static
, comme InitializeComponent()
(puisque c'est la Forme du constructeur).
La classe est:
public partial class Form1 : Form
{
InitializeComponent();
//some stuff
await myMethod();
}
J'ai lu cette un aussi, mais je ne sais toujours pas comment mettre en place cette (dans mon cas), puisque la méthode nécessite encore l'utilisation de async
.
Lire le Asynchrone de la POO à partir de Stephen Clairement.
OriginalL'auteur Jack | 2015-03-14
Vous devez vous connecter pour publier un commentaire.
Ne pas le faire dans le constructeur, mais dans l'événement chargé de la fenêtre à la place.
Vous pouvez marquer la charge du gestionnaire d'événements asynchrones.
Ne pas vous retrouver avec un
async void WindowLoaded()
, alors? Ne sommes-nous pas censés éviterasync void
? Quelle serait la différence entre l'appel d'uneprivate async void MyMethodAsync()
à partir du constructeur?Les gestionnaires d'événements sont un cas particulier. stackoverflow.com/questions/19415646/...
s'il vous plaît montrer un exemple
OriginalL'auteur Philip Stuyck
Vous pouvez utiliser une méthode statique qui renvoie une instance de votre formulaire
Create()
ne devrais-je pas faireawait Create()
si oui, j'ai besoin de marquer le constructeur commeasync
n'est-ce pas?Oui vous l'appellerez comme
await TestForm.Create()
, mais le constructeur n'a pas à être asyncJe ne savais pas... merci
OriginalL'auteur EZI
Mon échantillon est d'appeler les étudiants détails à partir de la page constructeur
1 - l'appel de la page de navigation
2 - la page des détails
OriginalL'auteur Ahmed Saber Abdel-Qader
Task.Run(async () => await YourAsyncMethod());
OriginalL'auteur Luis Rodrigues