【发布时间】:2018-04-13 12:24:39
【问题描述】:
我有问题,我使用 async await 编写了简单的代码,但编译器检测到错误,我发现解决 stackoverflow 中的问题以更改语言版本我的项目解决方案看起来:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.0</TargetFramework>
<LangVersion>7.2</LangVersion>
</PropertyGroup>
</Project>
但错误仍然存在。 然后我将项目构建中的语言 c# 版本更改为 7.2,但没有任何反应。
public сlass Program
{
public void Main(string[] args)
{
Run();
}
private static async Task<int> AsyncDoItAsync()
{
HttpClient client = new HttpClient();
Task<String> message = client.GetStringAsync("http://mdsm.microsoft.com");
while (!message.IsCompleted)
{
DoWhenChechink();
}
string url = await message;
return url.Length;
}
public static void DoWhenChechink()
{
Console.WriteLine("Waiting");
Thread.Sleep(75);
}
private static async void Run() {
int a = await AsyncDoItAsync();
}
}
【问题讨论】:
-
您的代码既没有显示
static async Task Main(),也没有显示static void Main()!您只有一个非静态Main和一个static async void Run。只需将您的Main声明为static或将您的Run方法重命名为Main,如果这是您打算用作Main的方法 -
使用
await Run();并修复初始错误。
标签: c# asp.net-core .net-core