В одном из видео MVA я увидел следующую конструкцию:
static void Main(string[] args)
{
Action testAction = async () =>
{
Console.WriteLine("In");
await Task.Delay(100);
Console.WriteLine("First delay");
await Task.Delay(100);
Console.WriteLine("Second delay");
};
testAction.Invoke();
}
Результатом выполнения будет:
In
Press any key to continue . . .
Он отлично компилируется, но прямо сейчас я не вижу способа подождать. Я мог бы поставить Thread.Sleep
или Console.ReadKey
после вызова, но это не то, что я хочу.
Итак, как этот делегат должен быть изменен, чтобы стать ожидаемым? (или, по крайней мере, как я могу отслеживать выполнение этого выполнения?)
Есть ли практическое использование таких делегатов?