C # Application de console Programmation asynchrone: Comprendre
modificateur async
Dans la programmation asynchrone, la méthode de représentation du modificateur
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
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
<code class="language-csharp">class Program { static async Task Main(string[] args) { Bootstrapper bs = new Bootstrapper(); var list = await bs.GetList(); } }</code>
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
async
En utilisant au lieu de <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>
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!