.NET Core异步编程

什么是.NET Core异步编程

异步编程是基于云计算微服务架构中,人们不需要通过购买更新的电脑和服务器来加快应用程序执行速度,就可以实现多步操作。使用异步编程可以直接处理多个服务或计算核心上的组阻塞输入(I/O)操作和并发操作。

.NET三种异步编程:

  1. 异步编程模型(Asynchronous Programming Model)APM
  2. 基于事件的异步模型(Event-based Asynchronous Pattern)EAP
  3. 基于任务异步模型(Task-based Asynchronous Pattern)TAP

TAP异步编程优点

  1. 等待I/O请求返回的同时可通过生成处理更多的请求线程,处理更多的服务器请求。
  2. 等待I/O请求的同时生成UI交互线程,并通过将长时间运行的工作转换到其他CPU核心,让UI的响应速度更快。
  3. 许多较新的.NET APIs都是异步的。
  4. 在.NET中编写异步代码很简单。

如何使用TAP异步编程

例:根据输入的网站使用异步编程抓取网页,再显示页面大小。`

using System;
using System.Net.Http;
using System.Threading.Tasks;
namespace ConsoleApp15
{
    class Program
    {
     static void Main(string[] args)
        {
            Console.WriteLine("请输入网络地址");
            string inputUrl = Console.ReadLine();
            CallBackMethod(inputUrl);
            Console.ReadKey();
        }
         static Task<int> DownloadPage(string httpUrl)
        {
            return Task.Run<int>(async () => {
                var client = new HttpClient();
                byte[] content = await client.GetByteArrayAsync(httpUrl);
                return content.Length;
            });            
        }
         async static void CallBackMethod(string url)
        {
            var result=await DownloadPage(url);
            Console.WriteLine("总共下载了{0}次{1}B",url,result);
        }
    }
}

运行效果
.NET Core异步编程_第1张图片

你可能感兴趣的:(.NET Core异步编程)