Async/await или разница между 2 методами - C#

Узнай цену своей работы

Формулировка задачи:

Добрых времени суток. Есть асинхронный метод:
public Task> GetAllByStreet(string street)
{
      return db.QueryAsync
( "SELECT DISTINCT House as Title, " + "NULL as Type, " + "NULL as Status, " + "0 as Visibility FROM Quest WHERE Street = ?", street); }
И методы в которых он вызывается:
private async void GetQuests() //1й
{
    List
allHouse = await dataBaseController.GetAllByStreet(this.Street); } private async void ListViewAddresses_ItemTapped(object sender, ItemTappedEventArgs e) //2й { List
allHouse = await dataBaseController.GetAllByStreet((e.Item as Address).Street); }
В первом методе все работает нормально, а вот в ивенте через await работать не хочет. Хотя если написать Result для получения коллекции - все работает как нужно. Что я упускаю?
Кстати, если написать так
List
allHouse = dataBaseController.GetAllByStreet(this.Street).GetAwaiter().GetResult();
То работать будет, но насколько я понимаю await != .GetAwaiter().GetResult() и операция уже не есть асинхронной... или есть?

Решение задачи: «Async/await или разница между 2 методами»

textual
Листинг программы
List<Address> allHouse = await dataBaseController.GetAllByStreet((e.Item as Address).Street);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5