Maison >développement back-end >C++ >Comment appeler correctement des méthodes asynchrones à partir de la méthode principale en C# ?
Invoquer des méthodes asynchrones dans Main : un guide complet
Dans le domaine de la programmation asynchrone, il n'est pas rare de rencontrer des situations où nous devons appelez une méthode asynchrone directement depuis la méthode Main. Comprendre comment cela peut être réalisé est crucial pour tirer parti des avantages de la programmation asynchrone.
Invocation de méthode asynchrone dans Main
Considérez l'extrait de code suivant :
cours public test
{
public async Task Go() { await PrintAnswerToLife(); Console.WriteLine("done"); } public async Task PrintAnswerToLife() { int answer = await GetAnswerToLife(); Console.WriteLine(answer); } public async Task<int> GetAnswerToLife() { await Task.Delay(5000); int answer = 21 * 2; return answer; }
}
Approches multiples
Il existe plusieurs approches pour invoquer async méthodes de la méthode Main :
1. Méthode principale asynchrone (C# 7.1 et versions ultérieures)
Pour C# 7.1 et versions plus récentes, la méthode Main peut être marquée comme asynchrone. Cela permet l'utilisation directe de méthodes asynchrones au sein de la méthode Main, comme le montre l'exemple suivant :
<br>static async Task Main(string[] args)<br>{</p> <pre class="brush:php;toolbar:false">test t = new test(); await t.Go(); Console.WriteLine("finished"); Console.ReadKey();
}
2. Appelez la méthode "Wait"
Pour les versions antérieures de C#, la méthode Wait peut être utilisée pour bloquer le thread jusqu'à la fin de la méthode asynchrone. Cette approche est illustrée ci-dessous :
<br>static void Main(string[] args)<br>{</p> <pre class="brush:php;toolbar:false">test t = new test(); t.Go().Wait(); Console.WriteLine("finished"); Console.ReadKey();
}
3. OnCompleted Callback (ancienne approche)
Dans certains cas, vous devrez peut-être utiliser un rappel OnCompleted comme indiqué dans l'extrait de code initial. Cette approche, cependant, peut conduire à des blocages et doit être évitée si possible.
Approche optimale
Pour C# 7.1 et versions ultérieures, l'utilisation de la méthode async Main est la méthode préférée. car elle simplifie le code et élimine le besoin d’invocation basée sur le rappel. Pour les versions antérieures de C#, la méthode Wait peut être utilisée, mais il est important de noter les implications potentielles sur les performances associées au blocage du thread.
Conclusion
Invocation de méthodes asynchrones de la méthode Main peut être réalisé grâce à diverses techniques. En comprenant les différentes approches et leurs implications, vous pouvez choisir la solution optimale en fonction de vos besoins spécifiques et de la version de C# que vous utilisez.
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!