méthode async
dans C # programming asynchrone: tâche
ou void
? Lors de la programmation de manière asynchrone à l'aide de C #, la méthode async
peut retourner tâche
ou void
. Ce choix est crucial car il détermine le comportement de la méthode et comment il interagit avec le code d'appel.
tâche
Habituellement, lorsque vous souhaitez exposer les progrès ou le résultat d'une opération asynchrone à l'appelant, vous devez retourner tâche
. Cela permet à l'appelant d'attendre la tâche et de continuer l'exécution une fois sa fin. Le retour tâche
peut également utiliser des modes d'exception et des modes asynchrones, tels que async-forach
, où la progression de plusieurs tâches peut être surveillée.
void
Le seul cas approprié pour retourner void
de la méthode async
est lorsque vous avez explicitement besoin du type de return , comme dans un gestionnaire d'événements ou un rappel UI. Dans ces cas, l'appelant ne doit pas être en mesure d'attendre la méthode, et les mots clés asynchronisés
et attendent
.
Évitez le niveau supérieur
méthodes marquées ont une sémantique spéciale et doivent être utilisées avec prudence. Ils représentent des opérations asynchrones de niveau supérieur et ont des règles de traitement des exceptions différentes des méthodes qui renvoient les tâches. Les exceptions au niveau supérieur void
sont traitées comme des exceptions non perdues et peuvent conduire à un comportement inattendu.
Par exemple, considérez le code suivant:
public static async void asyncMethod2 (int num) { attendre tâche.factory.startNew (() => thread.sleep (num)); }
public static async void AsyncMethod2(int num)
{
await Task.Factory.StartNew(() => Thread.Sleep(num));
}
async void est inutile et peut être problématique car:
et le mot-clé Await
pour assurer la gestion correcte des exceptions et maintenir la possibilité de suivre et de gérer les opérations asynchrones.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3