Пытаюсь лучше понять как работает async/awai и Task в дотнете
Есть два следующих простых метода
public async Task<int> CalculateAsync(int x, int y)
{
return await Task.Run(() => Calculate(x, y));
}
private int Calculate(int x, int y)
{
// Simuliruyem dolgiy process
Thread.Sleep(5000);
return x + y;
}
Несколько вопросов по этому коду:
1) Нормально ли что у вызываемого Calculate отсутствует слово async, не приведет ли это к синхронному выполнению?
2) Стоит ли всегда использовать ключ Task при обьявлении асинхронного метода?