Код: Выделить всё
static async Task Main(string[] args)
{
await Task.Run(LongRunningTask1);
await LongRunningTask2();
await Task.Run(LongRunningTask2);
Console.ReadLine();
}
static void LongRunningTask1()
{
Thread.Sleep(2000);
}
static async Task LongRunningTask2()
{
Thread.Sleep(2000);
}
Console.ReadLine();
Может ли кто-нибудь дать мне упрощенное описание того, когда вы будете использовать каждое из них?Кроме того, какое из трех выражений await создает отдельный поток? Я предполагаю, что это первое и третье. Если второй использует только поток пользовательского интерфейса, то как распределяется время выполнения между Main() и ожидаемой задачей?
Я читал, что второй вариант замедляет работу графического интерфейса (если, например, Main() вместо этого был обработчиком нажатия кнопки для программы WinForms). Тогда зачем использовать второй вариант? Что мне это дает?
Подробнее здесь: https://stackoverflow.com/questions/793 ... d-directly
Мобильная версия