.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 (本地下载)
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
.NET Core 1.0创建Self-Contained控制台应用
开发机器:win7-x64 .NET Core版本:1.0.0-preview2-003121 Visual Studio Code:1.2.1 至于什么是Self-Contained应用类型以及与Portable应用类型的区别,请参考另一篇文章:.NET Core应用类型(Portable apps & Self-contained apps),这篇文章仅仅是做一个完整的Demo供大家参考. 1.在指定目录创建一个HelloWorld的目录,使用命令行切换到此目录,执行:dotnet new
-
.NET Core创建一个控制台(Console)程序
.NET Core版本:1.0.0-rc2 Visual Studio版本:Microsoft Visual Studio Community 2015 Update 2 开发及运行平台:Windows 7 专业版 Service Pack 1 新增一个控制台项目(ConsoleLogApp) 在project.json文件中新增依赖项 { "version": "1.0.0-*", "buildOptions": { "emitEnt
-
在C#程序中注入恶意DLL的方法详解
目录 一.背景 二.实现原理 1. 基本思路 2. 案例演示 3. 自定义注入 三:总结 一.背景 前段时间在训练营上课的时候就有朋友提到一个问题,为什么 Windbg 附加到 C# 程序后,程序就处于中断状态了?它到底是如何实现的?其实简而言之就是线程的远程注入,这一篇就展开说一下. 二.实现原理 1. 基本思路 WinDbg 在附加进程的时候,会注入一个线程到 C# 进程 中,注入成功后,会执行一个 DbgBreakPoint() 函数,其实就是 int 3 ,这时候 CPU 就会执行 3
-
JavaScript手写异步加法asyncAdd方法详解
目录 前言 分析 asyncAdd 直观的基本要求 隐藏的考察点 — setTimeout & cb 隐藏的考察点 — async & await 实现 asyncAdd 具体实现 进行优化 抽离内层函数 缓存计算结果 前言 在掘金上发现一道既简单但个人觉得还挺有意思的一道题,题目如下: // 异步加法 function asyncAdd(a,b,cb){ setTimeout(() => { cb(null, a + b) }, Math.random() * 1000) } as
-
.NET Core控制台应用程序如何使用异步(Async)Main方法详解
前言 C# 7.1 及以上的版本允许我们使用异步的Main方法.下面话不多说了,来随着小编一起看看详细的介绍吧. 一.新建一个控制台应用程序 二.异步Main方法 我们直接将Main方法改为如下: static async Task Main(string[] args) 可以看到报错了,提示我们是C# 7.1 的特性.我们有两种方法可以解决,其实最后都是殊途同归,只是操作不一样而已. 1.第一种方法-修改csproj文件 打开项目的csproj文件,添加如下代码: <PropertyGroup
-
ASP.NET Core 中的Main方法详解
在 ASP.NET Core 项目中,我们有一个名为Program.cs的文件.在这个文件中,我们有一个public static void Main()方法 . public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[]
-
.NET Core单文件发布静态编译AOT CoreRT的方法详解
前言 本文主要介绍的是关于.NET Core单文件发布静态编译AOT CoreRT,将.NET Core应用打包成一个可执行文件并包含运行时. 支持Windows, MacOS and Linux x64 w/ RyuJIT codegen. 示例项目: https://github.com/dotnet/corert/tree/master/samples/WebApi 下面来实际体验. 首先确保安装C++编译环境,以及.NET Core 2.0 以上版本SDK. 新建WebAPI应用 打开命
-
zTree树形插件异步加载方法详解
本文实例为大家分享了zTree树形插件异步加载,Struts2框架,供大家参考,具体内容如下 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>异步加载</title> <link rel="stylesheet" href="${pageContext.request.contextPath}/zTree_v
-
微信小程序自定义modal弹窗组件的方法详解
微信小程序开发中官方自带的wx.showModal,这个弹窗API有时候并不能满足我们的弹窗效果,所以往往需要自定义modal组件.下面我们进行一个自定义modal弹窗组件的开发,并进行组件的引用,组件可自定义底部是一个还是两个按钮.效果如下. 首先我们可以在跟目录下创建一个components文件夹存放所有的组件.新建一个modal文件夹,下面新建modal.js.modal.json.modal.wxml.modal.wxss四个文件. modal.wxml布局文件: <view class
-
Go程序性能优化及pprof使用方法详解
Go 程序的性能优化及 pprof 的使用 程序的性能优化无非就是对程序占用资源的优化.对于服务器而言,最重要的两项资源莫过于 CPU 和内存.性能优化,就是在对于不影响程序数据处理能力的情况下,我们通常要求程序的 CPU 的内存占用尽量低.反过来说,也就是当程序 CPU 和内存占用不变的情况下,尽量地提高程序的数据处理能力或者说是吞吐量. Go 的原生工具链中提供了非常多丰富的工具供开发者使用,其中包括 pprof. 对于 pprof 的使用要分成下面两部分来说. Web 程序使用 pprof
-
关于在C程序中处理UTF-8文本的方法详解
UTF-8 互联网的普及, 强烈要求出现一种统一的编码方式. UTF-8就是在互联网上使用最广的一种unicode的实现方式. 其他实现方式还包括UTF-16和UTF-32, 不过在互联网上基本不用. 重复一遍, 这里的关系是, UTF-8是Unicode的实现方式之一. UTF-8最大的一个特点, 就是它是一种变长的编码方式. 它可以使用1~6个字节表示一个符号, 根据不同的符号而变化字节长度. UTF-8的编码规则 UTF-8的编码规则很简单, 只有两条: 1) 对于单字节的符号, 字节的第
-
ASP.NET Core中调整HTTP请求大小的几种方法详解
一.前言 之所以称ASP.NET Core是一个Web开发平台,源于它具有一个极具扩展性的请求处理管道,我们可以通过这个管道的定制来满足各种场景下的HTTP处理需求.ASP. NET Core应用的很多特性,比如路由.认证.会话.缓存等,也同时定制消息处理管道来实现的.我们甚至可以通过管道定制在ASP.NET Core平台上创建我们自己的Web框架,实际上MVC和SingalR这两个重要的Web框架也是采用这样的方式创建的. HTTP协议自身的特性决定了任何一个Web应用的工作方式都是监听.接收
随机推荐
- js 判断各种数据类型的简单方法(推荐)
- JS中this上下文对象使用方式
- 使用js如何实现全选与全不选
- apache提示Failed loading ZendLoader.dll解决方法
- 解决EditText不显示光标的三种方法(总结)
- iis 301转向和网址规范化总结分析
- 使用ASP在IIS创建WEB站点的函数
- Oracle存储过程循环语法实例分析
- JavaScript面对国际化编程时的一些建议
- Android实现保存图片到本地并在相册中显示
- PHP中$_SERVER使用说明
- Android 中RecyclerView多种item布局的写法(头布局+脚布局)
- 老生常谈Session和Cookie之间区别与联系(必看篇)
- Python数据类型中的“冒号“[::]——分片与步长操作示例
- gradle tool升级到3.0注意事项小结
- 解决Nodejs全局安装模块后找不到命令的问题
- JavaScript求一个数组中重复出现次数最多的元素及其下标位置示例
- Yii2处理密码加密及验证的方法
- 微信小程序实现一张或多张图片上传(云开发)
- python matplotlib 在指定的两个点之间连线方法