Использование async / await и возврат Задачи <HttpResponseMessage> из методов ASP.NET Web API
У меня есть метод Portable Class Library (PCL), подобный этому:
public async Task GetLineStatuses()
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
using (HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync())
{
return response.GetResponseStream().ReadAllText();
}
}
Мой метод ASP.NET Web Api выглядит следующим образом:
public async Task Get()
{
HttpResponseMessage response = new HttpResponseMessage();
string statuses = await service.GetStatuses();
response.Content = new StringContent(statuses);
return response;
}
Каковы последствия возврата Задачи в веб-API. Это разрешено? Единственная причина, по которой я хочу использовать await, - это возможность использовать Portable Class Library (PCL). Какова лучшая практика? Должен ли я иметь синхронную версию моего метода и асинхронную версию? Каковы последствия для производительности и читаемости кода и ремонтопригодности?
Также был бы у меня такой же эффект, если бы я вернулсяTask
скорее, чем ?Task