Однажды, когда я использовал фрагмент cw в асинхронном методе, Visual Studio использовала await Console.Out.WriteLineAsync(); вместо исходного Console.WriteLine();. Сегодня я обновил Visual Studio до 17.10 и заметил, что эта функция удалена.
Я хотел бы спросить, есть ли разница между этими двумя методами? Или какой лучше использовать в асинхронных методах?
Я думал, что метод await будет быстрее при отображении большого количества текста, но я тестировал его с помощью следующего метода и не увидел ожидаемый эффект.
[Benchmark]
public void Benchmark1()
{
Parallel.For(0, 200, async i =>
{
await Console.Out.WriteLineAsync($"example text {i}");
await Console.Out.WriteLineAsync($"example text {i}");
await Console.Out.WriteLineAsync($"example text {i}");
await Console.Out.WriteLineAsync($"example text {i}");
await Console.Out.WriteLineAsync($"example text {i}");
});
}
[Benchmark]
public void Benchmark2()
{
Parallel.For(0, 200, i =>
{
Console.WriteLine($"example text {i}");
Console.WriteLine($"example text {i}");
Console.WriteLine($"example text {i}");
Console.WriteLine($"example text {i}");
Console.WriteLine($"example text {i}");
});
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... elineasync