本篇是.Net异步编程的最后一篇了,希望这篇可以帮你总结前面几篇学习内容,并且在本章得到升华,也为大家将来在.Net中使用异步编程大大提高您应用吞吐量、性能。
在.Net中编写IO或者CPU异步任务是非常直接的,.Net/.Net Core/Window Runtime支持在语言级别使用Task/Task<T>/async/await几个接口用于异步编程,本章向大家介绍async背后发生的一些基本原理,帮助大家更好的理解async以及await使用。
Task And Task<T>
简单的来讲,Task是一个Promise Model of Concurrency模式的实现,关于什么是Promise Model of Concurrency, 大家可以自行去搜索并学习一下该模
本节演示如何使用方法WhenAny()来巧妙的处理多个任务的await, 一定要仔细阅读代码。
本节代码可以从这里找到:https://github.com/hylinux/azure-demo/tree/main/dotnet/basic/asyncdemo/WhenAnyDemo
创建应用
使用如下的命令创建应用
mkdir WhenAnyDemo
cd WhenAnyDemo
dotnet new console
替换using
以编辑器打开文件Program.cs,替换如下的using语句
using System;
using System.Collections.Generic;
using System.Diagnostics;
using
我们上一章学习了如何手动的取消任何,本章学习使用方法CancellationTokenSource.CancelAfter定时取消任务,本章的源代码可以在这里找到:https://github.com/hylinux/azure-demo/tree/main/dotnet/basic/asyncdemo/CancelTaskByTime
闲话少说,直接上代码。
创建应用
以如下的命令行创建代码:
mkdir CancelTaskByTime
cd CancelTaskByTime
dotnet new console
替换using语句
以编辑器打开文件Program.cs, 替换using语句如下:
using System;
using System.