Например, у нас есть два фрагмента кода:
public static async Task TestAsync()
{
await Task.Delay(5000);
}
Task.Run(async () =>
{
for (int i = 0; i < 3; ++i)
{
await TestAsync();
}
}).Wait();
public static void Test()
{
Task.Delay(5000).Wait();
}
Task.Run(() =>
{
for (int i = 0; i < 3; ++i)
{
Test();
}
}).Wait();
(Task.Delay
просто представляет некоторыедолго выполняемое задание.)
Будет ли разница в производительности между двумя фрагментами кода?(Я проверил их, и кажется, что они имеют одинаковую производительность.)
Но, теоретически, 2) превзойдет 1) в какой-то ситуации?(Например, если в пуле потоков много потоков, ожидающих выполнения.)