Использование 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

Ответы на вопрос(1)

Ваш ответ на вопрос