Maison >développement back-end >C++ >Puis-je rendre la méthode principale de mon application de console asynchrone?
Lorsque vous essayez de définir la méthode principale de l'application de console sur Asynchrone, une erreur peut être rencontrée: "La méthode principale qui ne peut pas spécifier le modificateur" async "dans la méthode principale de l'application de console".
Le compilateur limite
Historiquement, le compilateur Visual Studio limite l'utilisation du modificateur asynchrone sur la méthode principale. Il s'agit d'empêcher la mise en œuvre asynchrone du comportement de synchronisation naturelle du programme de console.
Le support de la principale asynchrone
Cependant, en commençant par Visual Studio 2017 Update 3 (15.3), C # prend en charge la méthode principale asynchrone, tant qu'ils renvoient la tâche ou la tâche . Cela permet la structure de code suivante:
Comprendre le comportement
<code class="language-csharp">class Program { static async Task Main(string[] args) { // 异步代码在此处 } }</code>Dans la méthode principale asynchrone, l'indication de mot-clé "Await" peut attendre l'objet (par exemple, la tâche) pour terminer la méthode, puis revenir à la méthode. Cependant, dans l'application de la console, le retour de la méthode principale se retirera de la procédure.
Évitez que la procédure sortait
Afin d'empêcher la procédure de quitter, il est nécessaire de fournir un contexte compatible avec la compatibilité asynchrone pour la méthode principale. Ce contexte maintient le programme dans un état d'activité pendant le fonctionnement de l'opération asynchrone.
L'option de contexte
Bibliothèque NuGet:
Utilisez le sac AsyncConText dans Nito.Asyncex Nuget Bag.CTP asynchrone: GoneralthreaFineContext dans le CTP asynchrone (si disponible).
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!