async await Task

Posted 我是格鲁特

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了async await Task相关的知识,希望对你有一定的参考价值。

一、使用Task

引用命名空间

using System.Threading.Tasks;

1.工厂方式

Task.Factory.StartNew(() => {Console.WriteLine("Hello Task library!"); });

2.实例方式

Task task = new Task(() => PrintMessage());
task.Start();

 3. .NET4.5

Task.Run(() => PrintMessage());
//将指定的结果包装为已完成的Task
Task.FromResult<int>(GetSum(4, 5));

 二、async和await

async和await

(1)在async标识的方法体里面,如果没有await关键字的出现,那么这种方法和调用普通的方法没什么区别。

(2)在async标识的方法体里面,在await关键字出现之前,还是主线程顺序调用的,直到await关键字的出现才会出现线程阻塞。

(3)await关键字可以理解为等待方法执行完毕,除了可以标记有async关键字的方法外,还能标记Task对象,表示等待该线程执行完毕。所以await关键字并不是针对于async的方法,而是针对async方法所返回给我们的Task。

  (4)asyc方法的返回类型必须为void、Task或者Task<T>类型。也就是说async要么是void,要么和Task关联。

以上是关于async await Task的主要内容,如果未能解决你的问题,请参考以下文章

async,await.task

C# Async与Await的使用

多线程async&await

正确使用 Task.Run 和 async-await 时

正确使用 Task.Run 和 async-await 时

C# 使用Awaiter