Maison >développement back-end >C++ >Quand et pourquoi « async void » est-il une mauvaise pratique en C# ?
Comprendre le contexte :
Les méthodes asynchrones en C# peuvent renvoyer soit Tâche, soit vide. Bien que les méthodes async void puissent sembler pratiques dans certains scénarios, elles introduisent des inconvénients potentiels qui les rendent généralement déconseillées. Examinons pourquoi le vide asynchrone est considéré comme une mauvaise pratique et comment aborder ces situations plus efficacement.
Raisons d'éviter le vide asynchrone :
Alternative Approches :
Dans l'exemple fourni, où l'accent est mis sur la réaction à un clic sur un bouton sans attendre le résultat, une approche plus appropriée consiste à définir la méthode PrimeCustomTask comme tâche asynchrone et à utiliser la méthode OnLoad comme un point d’entrée pour démarrer l’opération asynchrone. De cette façon, tous les avantages des méthodes Task asynchrones sont préservés :
protected override async void OnLoad(EventArgs e) { if (CustomTask == null) await PrimeCustomTask(); } private async Task PrimeCustomTask() { CustomTask = new TaskCompletionSource<int>(); while (CustomTask.Task.IsCompleted == false && IsDisposed == false) { // Wait for button click to set the value await Task.Delay(100); } int result = CustomTask.Task.Result; // Show the value if (result != 0) MessageBox.Show(result.ToString()); }
En adhérant à ces directives, vous pouvez éviter les pièges des méthodes void asynchrones et améliorer la maintenabilité, la réutilisabilité et la testabilité de votre code.
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!