async await
这两个关键词是专用于处理一些IO
网络IO,文件IO都有一些异步方法:MemoryStream,FileStream,WebRequest
static void Main(string[] args)
{
Console.WriteLine(GetString().Result);
Console.ReadLine();
}
async static Task<string> GetString()
{
FileStream fs = new FileStream(Environment.CurrentDirectory + "\\1.txt", FileMode.Open);
var buffer = new byte[fs.Length];
var len = await fs.ReadAsync(buffer, 0, buffer.Length);
var str = Encoding.UTF8.GetString(buffer);
return str;
}
优缺点
优点:
(1)代码简洁,把异步的代码写成了同步形式
(2)提高了效率
缺点:
(1)如果用同步思维去理解,会出问题,返回值对不上。
(2)我们在编译器层面看到的代码不见得是真的代码,可能底层代码很多。