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

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

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

二.异步Main方法

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

static async Task Main(string[] args)

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

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

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

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

例如:

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

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

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

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

三.验证

我们在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();
    }
}

然后运行:

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

原文地址:https://www.cnblogs.com/stulzq/p/9219085.html

时间: 2024-10-11 13:11:03

.NET Core 控制台应用程序使用异步(Async)Main方法的相关文章

在.NET Core控制台应用程序中使用强类型配置

想象一下,你写一个控制台应用程序,你想要从配置文件中以强类型方式读取配置. .NET Core 可以帮助我们解决. 通常我会在ASP.NET Core MVC中演示,但简单起见,只在控制台应用程序中演示. 让我们创建两个配置类,用于保存应用程序和模块名称. public class MySettings { public string ApplicationName { get; set; } } public class MyModuleSettings { public string Mod

6.ASP.NET Core中的Main方法

在这篇文章中,我将带领大家详细学习ASP.NET Core 中的Main方法.在这篇文章中,我将向大家详细介绍下面几个问题: ASP.NET Core Main方法的重要性 为什么我们在ASP.NET Core中会有一个Main方法? 当你运行一个ASP.NET Core应用程序的时候,背后发生了什么? 为了解释这些问题,我们首先打开,在之前的文章中,新建的空模板的ASP.NET Core项目. 你可以看到我们有一个Program类文件,里面包含图中所示的代码. 从上图中,我们可以看到程序包含一

简述java程序中的main方法

简述main方法: 在java语言程序编写时都会涉及到一个main方法,它的格式为: public static void main(String[] args)(一般必须这么定义,这是java规范) 在这里修饰符public和static的顺序是可以互换的.但是根据java的惯例,一般把public放在前面,后面的参数名args是不固定的,开发者可以任意命名. 1) public关键字指可以其他类可以访问这个函数. 2) static 关键字指静态函数,调用时不会实例化(即不能创建对象)(静态

ASP.NET Core Web 应用程序系列(四)- ASP.NET Core 异步编程之async await

原文:ASP.NET Core Web 应用程序系列(四)- ASP.NET Core 异步编程之async await PS:异步编程的本质就是新开任务线程来处理. 约定:异步的方法名均以Async结尾. 实际上呢,异步编程就是通过Task.Run()来实现的. 了解线程的人都知道,新开一个线程来处理事务这个很常见,但是在以往是没办法接收线程里面返回的值的.所以这时候就该await出场了,await从字面意思不难理解,就是等待的意思. 执行await的方法必须是async修饰的,并且是Task

【ASP.NET Core分布式项目实战】(五)Docker制作dotnet core控制台程序镜像

Docker制作dotnet core控制台程序镜像 基于dotnet SDK 新建控制台程序 mkdir /home/console cd /home/console dotnet new console dotnet restore 创建 Dockerfile 文件,参考https://github.com/dotnet/dotnet-docker/blob/master/samples/aspnetapp/Dockerfile vim /home/console/Dockerfile #

.Net Core 控制台程序错误:Can not find runtime target for framework &#39;.NETCoreApp,Version=v1.0&#39; compatible with one of the target runtimes: &#39;win10-x64, win81-x64, win8-x64, win7-x64&#39;.

.Net Core 控制台程序错误:Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible with one of the target runtimes: 'win10-x64, win81-x64, win8-x64, win7-x64'. 解决方法: 在项目文件project.json里添加: "runtimes": {    "win10-x64": {}

VisualStudioCode创建的asp.net core控制台程序部署到linux

1.asp.net core控制台程序 static void Main(string[] args) { int times=10; while(times>=0) { Console.WriteLine("Hello World!"); times--; Thread.Sleep(1000); } } 2.发布 发布前,修改test2.csproj文件(项目名称为test2) <Project Sdk="Microsoft.NET.Sdk">

.net core控制台程序中使用原生依赖注入

原文:.net core控制台程序中使用原生依赖注入 如果要在程序中使用DbContext,则需要先在Nuget中安装Microsoft.EntityFrameworkCore.SqlServer using ConsoleApp1.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using System; using Console

.Net core webapi使用httpClient发送异步请求遇到TaskCanceledException: A task was canceled

前言:本人最近较多使用.net core的项目,最近在使用httpClient发送请求的时候,遇到服务器处理时间较长时,就老是会报异常:TaskCanceledException: A task was canceled.   我的使用异步请求的方法也较为老套,使用的Task a=()=>{};   a.Wait();  来等待异步操作的结束,这种方式执行等待时,就常会出现上面的异常信息,在.net Core中httpClient添加配置超时时长也没用: services.AddHttpClie