У меня есть этот простой код:
public static async Task<int> SumTwoOperationsAsync()
{
var firstTask = GetOperationOneAsync();
var secondTask = GetOperationTwoAsync();
return await firstTask + await secondTask;
}
private async Task<int> GetOperationOneAsync()
{
await Task.Delay(500); // Just to simulate an operation taking time
return 10;
}
private async Task<int> GetOperationTwoAsync()
{
await Task.Delay(100); // Just to simulate an operation taking time
return 5;
}
Великий. это компилируется.
Но скажу, что у меня консольное приложение, и я хочу запустить код выше (вызов SumTwoOperationsAsync()
)
static void Main(string[] args)
{
SumTwoOperationsAsync();
}
Но я читал, что (при использовании sync
) мне нужно полностью синхронизировать вверх и вниз:
Вопрос: Это значит, что моя функция Main
должна быть отмечена как async
?
Ну, он не может быть, потому что есть ошибка компиляции:
точка входа не может быть помечена модификатором 'async'
Если я понимаю асинхронный материал, поток войдет в функцию Main
---- > SumTwoOperationsAsync
---- > вызовет обе функции и не будет. но до SumTwoOperationsAsync
Что мне не хватает?