Net Core以后加入了很多异步的使用方式主要加入了关键词 await,async 关键词
一般大家异步方法以Async结尾例如 File.ReadAllTextAsync
async
用于声明异步函数,返回值为一个 Task 对象或者Task<T> 对象,它以类似 同步 的方式来写异步方法,语法与声明函数类似
static async Task<string> Rune()
{
var demo = "Hello World";
Thread.Sleep(1000);
return demo;
}await
用法顾名思义,有 等待 的意思,语法为:
var value = await Rune();
使用了await方法的时候,调用的方法也必须增加 async 关键词
调用异步方法有几种
一、使用异步传递的方法异步调用
static async Task Demo01()
{
var str = await Rune();
Console.WriteLine(str);
}
static async Task<string> Rune()
{
var demo = "Hello World";
Thread.Sleep(1000);
return demo;
}二、尝试用同步的方法使用
直接获取Task返回,然后调用result,此时就可以不加 async 关键词,变成同步方法,但是官方不建议,可能多并发时导致死锁
static void Demo01()
{
var t = Rune();
var str = t.Result;
Console.WriteLine(str);
}
static async Task<string> Rune()
{
var demo = "Hello World";
Thread.Sleep(1000);
return demo;
}