Я хочу сделать это асинхронно, потому что, как правило, все операции ввода-вывода должны выполняться асинхронно, поэтому я в основном хочу выполнить GET, дождаться результата и вернуть результат. строку.
Мой код:
Код: Выделить всё
public async Task getClassName()
{
Task myTask = getClassNameFromClassNamer();
// Do something here
string page = await myTask;
return page;
}
public async Task getClassNameFromClassNamer() /
{
string url = "...";
using (var client = new HttpClient())
{
return await client.GetStringAsync(url);
}
}
Я также пробовал использовать ConfigurationAwait(continueOnCapturedContext: false);, не помогло.
Когда я пытался использовать
Код: Выделить всё
result = httpClient.GetStringAsync("...").Result;
Я работаю в .NET 4.5
РЕДАКТИРОВАТЬ:
метод вызова:
Код: Выделить всё
public async Task execFeature()
{
string response = await webApi.getClassName();
IResult result = new TextResult(response);
result.display();
}
Код: Выделить всё
public async Task startService()
{
....
await feature.execFeature();
}
Код: Выделить всё
featureService.startService();
- Что такое правильный способ выполнения асинхронного GET на сервере? Я хочу выполнить GET, получить строковый результат и вернуть строку.
- Насколько я знаю, каждый веб-запрос должен выполняться асинхронно, потому что мы хотите, чтобы другой код в приложении (пользовательский интерфейс, логика) продолжал работать. Несмотря на то, что прямо сейчас у меня нет никаких других операций или другого пользовательского интерфейса, чтобы оставаться отзывчивым (консольное приложение), и я в основном просто жду ответа от сервера, я чувствую, что это хорошо попрактикуйтесь выполнять запросы в асинхронном режиме. Это звучит правильно?
Подробнее здесь: https://stackoverflow.com/questions/369 ... -async-get