À un moment donné, le CoreCLR a pris en charge les points d'entrée principaux asynchrones. Voir http://blog.stephencleary.com/2015/03/async-console-apps-on-net-coreclr.html
Cependant, les deux programmes suivants ne fonctionnent pas dans .NET Core RTM
using System;
using System.Threading.Tasks;
namespace ConsoleApplication
{
public class Program
{
public static async Task Main(string[] args)
{
await Task.Delay(1000);
Console.WriteLine("Hello World!");
}
}
}
o
using System;
using System.Threading.Tasks;
namespace ConsoleApplication
{
public class Program
{
public async Task Main(string[] args)
{
await Task.Delay(1000);
Console.WriteLine("Hello World!");
}
}
}
Les deux échouent avec l'erreur :
erreur CS5001 : le programme ne contient pas de méthode statique 'Main' convenant à un point d'entrée
Les applications asynchrones en console sont-elles prises en charge dans .NET Core RTM ?
5 votes
Notez que
async Main
Le support est actuellement prévu pour C# 7.0. .6 votes
@svick en fait, le support async Main a été ajouté dans c# 7.1, docs.microsoft.com/fr/us/dotnet/csharp/whats-new/ - Dans votre projet visual studio 2017, allez dans les propriétés du projet -> build -> advanced, puis changez votre version de langue à 7.1 (ou plus).
1 votes
N'oubliez pas de changer
properties -> build -> advanced -> language version
pour les types de construction Debug ET Release, sinon le projet échouera lors de la publication.2 votes
Dans mon projet, 'async Main' ne fonctionne que si j'utilise Task au lieu de void. Avec void, j'ai reçu l'erreur 'CS5001'.
0 votes
Duplicata possible de Impossible de spécifier le modificateur 'async' sur la méthode 'Main' d'une application console