发布:2021/9/28 8:56:09作者:管理员 来源:本站 浏览次数:1027
业务需求说明:
现在我需要做早餐,实现烤面包,烤培根,搞点番茄酱,开吃这几个步骤,烤面包和考培根为了节省时间可以同时操作,然后等这两个做完在搞点番茄酱就可以开饭了。
异步,多任务怎么实现呢
下面通过使用 async/await、WhenAll、ContinueWith 来讲解
复制代码
class Program
{
static async Task Main(string[] args)
{
Console.WriteLine("开始做早餐--------");
//烤面包
Task toast = Toast();
//烤培根
Task bakedBacon = BakedBacon();
//等待这两个任务完成之后搞点番茄酱就可以开吃了。
await Task.WhenAll(toast, bakedBacon).ContinueWith(async (t) =>
{
await AddSauce();
Console.WriteLine("开吃");
});
}
}
复制代码
烤面包异步方法
复制代码
/// <summary>
/// 开始烤面包
/// </summary>
/// <returns></returns>
public static async Task Toast()
{
await Task.Run(async () =>
{
Console.WriteLine("正在烤面包!");
await Task.Delay(4000);
Console.WriteLine("结束烤面包!");
});
}
复制代码
烤培根异步方法
复制代码
/// <summary>
/// 烤培根
/// </summary>
/// <returns></returns>
public static async Task BakedBacon()
{
await Task.Run(async () =>
{
Console.WriteLine("正在烤培根!");
await Task.Delay(2000);
Console.WriteLine("结束烤培根!");
});
}
复制代码
搞点番茄酱异步方法
复制代码
/// <summary>
/// 番茄酱
/// </summary>
/// <returns></returns>
public static async Task AddSauce()
{
await Task.Run(async () =>
{
Console.WriteLine("来点番茄酱!");
await Task.Delay(1000);
Console.WriteLine("番茄酱搞定!");
});
}
复制代码
运行结果:
© Copyright 2014 - 2024 柏港建站平台 ejk5.com. 渝ICP备16000791号-4