.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方法

823
来自专栏微信公众号:Java团长

彻底解决MySQL中文乱码

mysql是我们项目中非常常用的数据型数据库。但是因为我们需要在数据库保存中文字符,所以经常遇到数据库乱码情况。下面就来介绍一下如何彻底解决数据库中文乱码情况。

992
来自专栏用户2442861的专栏

linux GDB调试c++程序

  GDB 是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNI...

562

如何用split命令来拆分文件

split是一个类似于grep或tail的Unix命令行实用程序。它允许您将较大的文件分成几个较小的文件。

663
来自专栏mwangblog

Linux中的管道命令(一)

1464
来自专栏用户2442861的专栏

ubuntu下mysql的安装以及基本命令

打开终端,输入sudo apt-get install mysql-server

712
来自专栏数值分析与有限元编程

Fortran知识 | 代码错误(end-of-file during read)

如图所示,提示为:end-of-file during read ? 这是读取文件时的错误。比如,代码要求某一变量有9行数据,实际文件中只有8行,即数据文件缺失...

2705
来自专栏玄魂工作室

Hacker基础之Linux篇:进阶Linux命令四

这个命令可以用来查看二进制数据中的文本信息的,我们还是用上节课的编译文件11来做测试

1143
来自专栏IT可乐

Linux系列教程(二十二)——Linux的bash变量

  上篇博客我们介绍了bash的一些基本功能,这是我们平时操作最频繁的。本篇博客我们介绍bash的变量,为后面编写shell脚本做铺垫。 1、什么是变量   变...

18610
来自专栏C/C++基础

C++覆盖或删除指定位置的文件内容

我们经常使用ofstream或者fstream可写文件,使用ifstream可以写文件,但需要设置文件的打开状态为ios::out。C++中IO流打开模式使用位...

923

扫码关注云+社区