Maison > développement back-end > C++ > Comment puis-je implémenter la programmation asynchrone dans les applications C # Console?

Comment puis-je implémenter la programmation asynchrone dans les applications C # Console?

Mary-Kate Olsen
Libérer: 2025-02-01 17:06:09
original
183 Les gens l'ont consulté

How Can I Implement Asynchronous Programming in C# Console Applications?

C # Application de console Programmation asynchrone: Comprendre

modificateur async Dans la programmation asynchrone, la méthode de représentation du modificateur

s'exécutera simultanément avec un autre code. Cependant, dans l'application de la console, la méthode

ne peut pas être définie comme async, ce qui porte un défi aux développeurs qui veulent le programme asynchrone. Main async Cet article traite de cette question en profondeur et discute de la méthode de remplacement pour atteindre un comportement asynchrone dans l'application de la console.

Dormier

async Dans Visual Studio 2012, la méthode est interdite comme

. Cependant, dans Visual Studio 2017 Update 3 (15.3) et des versions supérieures, tant que

ou Main, la langue prend désormais en charge la méthode async Task. Cela permet aux développeurs d'écrire le code suivant: Task<T> async Main Cette méthode semble bloquer le thread principal, similaire à l'utilisation de

. Cependant, avant la spécification officielle de la langue de C # 7.1, ce comportement reste une hypothèse.
<code class="language-csharp">class Program
{
    static async Task Main(string[] args)
    {
        Bootstrapper bs = new Bootstrapper();
        var list = await bs.GetList();
    }
}</code>
Copier après la connexion

La méthode alternative de l'application de console asynchrone GetAwaiter().GetResult()

Lorsque la méthode n'est pas possible, le développeur peut adopter l'une des méthodes alternatives suivantes:

Contexte personnalisé:

Créez une "boucle principale" personnalisée compatible avec async compatible pour l'application de la console. Ce cycle agit comme un conteneur pour les méthodes asynchrones. Main

Obloquer le fil principal:
    Obstruer le fil de console principal avant la fin des travaux asynchrones. Cela peut être mis en œuvre dans les méthodes suivantes:
  1. async En utilisant au lieu de
  2. ou
  3. , les développeurs peuvent éviter l'emballage qui se produit lors de l'utilisation de ces méthodes.
  4. En bref, bien que la méthode
<code class="language-csharp">class Program
{
    static void Main(string[] args)
    {
        MainAsync(args).GetAwaiter().GetResult();
    }

    static async Task MainAsync(string[] args)
    {
        Bootstrapper bs = new Bootstrapper();
        var list = await bs.GetList();
    }
}</code>
Copier après la connexion
fournit une méthode plus directe pour l'application de console asynchrone, elle ne convient pas à l'ancienne version de Visual Studio ou lorsque la méthode

GetAwaiter().GetResult() ne convient pas pour une implémentation spécifique. Wait()

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal