异步编程使程序能够在等待长时间运行的任务时保持响应性。C# 使用 async 和 await 关键字来简化异步编程。
目录
6.1 基本概念
> async 关键字:标记方法为异步方法。
> await 关键字:等待异步操作完成。
异步编程(Async/Await)就像在餐厅点菜:
> 普通编程:你点了菜后就一直等待,不做其他事情,直到菜做好才能继续。
> 异步编程:你点了菜后可以去做其他事情,比如聊天或看电视,等菜做好了再去取。这样你就能高效地利用时间,不浪费等待的过程。
6.1.1 示例:基本异步方法
using System;
using System.Threading.Tasks;
//---
class Program
{
static async Task Main(string[] args)
{
await DoSomethingAsync();
Console.WriteLine(13213131231313);
Console.WriteLine("Async method completed.");
}
//---
static async Task DoSomethingAsync()
{
await Task.Delay(2000); // 模拟异步操作
Console.WriteLine("Something was done.");
}
}
6.1.2 示例:返回值的异步方法
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
int result = await CalculateSumAsync(5, 10);
Console.WriteLine($"Result: {result}");
}
static async Task<int> CalculateSumAsync(int a, int b)
{
await Task.Delay(1000); //模拟异步操作
return a + b;
}
}
6.1.3 异步方法中的异常处理
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
try
{
int result = await CalculateSumAsync(5, 10);
&n