.NET CORE 的异步编程

什么是异步编程?

从其它线程发起后,在一个新的单独线程上运行的操作。发起异步操作的线程不必等待异步操作完成。

简单来说,正常程序执行是从上到下逐语句执行,这就叫同步。

比如当你写同步程序的时候,你的代码中需要先后执行两个非常耗时间的操作,暂且把这两个操作取名了A 和 B,按照同步的方式,那就必须先执行A 等A执行完(假如耗费时间10秒)然后再执行B(假如耗时15秒),这样总共就耗时25秒。这个时候假如A和B能够同时执行,异步。 那么只需要耗时15秒就能够执行完。

异步编程不是万能的?

如果代码里面也没有网络或 I/O 绑定操作,异步对你代码基本没有什么性能的提升。

.NET 内置的异步方法

async 和 await 关键字。

async 和await  是C#  异步编程的核心,由他们定义的方法被称为异步方法。

public async Task<List<data>> GetA()
{
     var data= await _data.GetAllListAsync();
     return data;
}

异步编程的核心就是 Task 和 Task<T> 对象,它们模拟了异步操作。

在 C# 中一个 Task 对象可以看作一个需要继续执行的操作,一个 Task<T> 对象可以看作一个在将来会返回 T 类型值的操作。这就像承诺将在操作完成后返回 T 类型的值

原文地址:https://www.cnblogs.com/LinWenQiang/p/15595327.html