Próbuję ogarnąć programowanie asynchroniczne, mam taki kod:
public async Task<Data> GetData()
{
var data = await DownloadData();
foreach (var d in data) d = Do(d);
return data;
}
public async Task<Data> Metoda1()
{
/* tutaj jakiś kod */
return await GetData();
}
public Task<Data> Metoda2()
{
/* tutaj jakiś kod */
return GetData();
}
Jeśli piszę własną aplikację i mam w niej podział na warstwy to powinienem raczej pisać metody typu Meroda1(), tzn takie która każda czeka na metody asynchroniczne, czy raczej przekazywać Taska w górę tak jak w Metoda2?
Pytanie 2: Kiedy dodawać do nazwy metody Async, jak posiada modyfikator async, czy jak zwraca Task, Task<T>, jak używa innych metod Async?