我正在学习异步编程。我有一些虚拟的async
方法
private static async Task BookHolidayAsync()
{
var start = DateTime.Now;
var bookedHotel = BookHotelAsync();
var bookedFlight = BookFlightAsync();
var bookedCar = BookCarAsync();
await bookedCar;
await bookedFlight;
await bookedFlight;
var end = DateTime.Now - start;
Console.WriteLine("Time taken: {0} seconds", end.Seconds);
}
private static async Task BookFlightAsync()
{
for (int i = 0; i < 999900000; i++)
{
}
}
private static async Task BookHotelAsync()
{
for (int i = 0; i < 999900000; i++)
{
}
}
private static async Task BookCarAsync()
{
for (int i = 0; i < 999900000; i++)
{
}
}
和一些同步方法
private static void BookHoliday()
{
var start = DateTime.Now;
BookHotel();
BookFlight();
BookCar();
var end = DateTime.Now - start;
Console.WriteLine("Time taken: {0} seconds", end.Seconds);
}
private static void BookFlight()
{
for (int i = 0; i < 999900000; i++)
{
}
}
private static void BookHotel()
{
for (int i = 0; i < 999900000; i++)
{
}
}
private static void BookCar()
{
for (int i = 0; i < 999900000; i++)
{
}
}
我的主要方法是
static void Main(string[] args)
{
BookHolidayAsync().Wait();
BookHoliday();
}
在这里我不能理解的两件事
async
花费的时间是9秒,而同步方法花费的时间是6秒,为什么async
慢?