.NET Core 控制台应用程序使用异步(Async)Main方法

C# 7.1 及以上的版本允许我们使用异步的Main方法。

一.新建一个控制台应用程序

1529762562337

二.异步Main方法

我们直接将Main方法改为如下:

static async Task Main(string[] args)
1529762747510

可以看到报错了,提示我们是C# 7.1 的特性。我们有两种方法可以解决,其实最后都是殊途同归,只是操作不一样而已。

1.第一种方法-修改csproj文件

打开项目的csproj文件,添加如下代码:

 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <LangVersion>7.1</LangVersion>
  </PropertyGroup>

例如:

1529762909659

2.第二种方法-通过vs更改项目属性

在“解决方案管理器”界面中,选中项目,然后 右键->属性 -> Build

1529763028967

在弹出的界面中选中 C# 7.1

1529763064679

经过上面的更改以后,将不会报错了。

三.验证

我们在Main方法中,加入如下代码,获取百度首页的html:

class Program
{
    static async Task Main(string[] args)
    {
        var client = new HttpClient();
        var result = await client.GetStringAsync("https://www.baidu.com/");
        Console.WriteLine(result);
        Console.ReadKey();
    }
}

然后运行:

1529763181795

本文所用代码:https://github.com/stulzq/BlogDemos/tree/master/AsyncConsoleApp

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏晓晨的专栏

.NET Core 控制台应用程序使用异步(Async)Main方法

1073
来自专栏Laoqi's Linux运维专列

Redis的两种备份方式

1463
来自专栏跟着阿笨一起玩NET

ASP.NET 防止同一用户同时登陆

       要防止同一用户同时登陆,首页应该记录在线用户的信息(这里与用户名为例),然后判断正在登陆的用户里面是否已存在。在这里使用一个cache存放已经登陆...

1191
来自专栏崔庆才的专栏

一文详细揭秘 Redis 持久化,了解一下?

Redis 是一个开源( BSD 许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持的数据类型很丰富,如字符串、链表、集 合、以及散...

1372
来自专栏小特工作室

读取Pdm文件内容(含源码)

  Pdm文件,就是PowerDesigner软件生成的文件,用来设计数据库表结构非常适合。其实,它的文件存储格式就是Xml,网上有很多代码,可以读取pdm文件...

2669
来自专栏武培轩的专栏

Redis持久化

Redis是内存型数据库,为了使Redis在重启之后仍能保证数据不丢失,需要将数据从内存中同步到硬盘中,这一过程就是持久化。 Redis支持两种持久化的方式,一...

4415
来自专栏Pythonista

redis主从同步

原理: 1. 从服务器向主服务器发送 SYNC 命令。 2. 接到 SYNC 命令的主服务器会调用BGSAVE 命令,创建一个 RDB 文件,并使用缓冲区记录接...

2622
来自专栏Python、Flask、Django

Django in App Urls

1382
来自专栏Golang语言社区

golang模板template自定义函数用法示例

golang的模板十分强大,其中的unix管道风格函数调用很是喜欢. 模板中有很多内置可以参看pkg文档, 另外还可以实现自定义函数. 例子如下: packag...

5754
来自专栏fixzd

redis系列:RDB持久化与AOF持久化

Redis的数据都是存储在内存中的,所以Redis持久化也就是要把Redis存储在内存中的数据保存到硬盘。

811

扫码关注云+社区

领取腾讯云代金券