Код после операции ожидания не выполняется - PullRequest
0 голосов
/ 09 мая 2019

Я пишу приложение для форм xamarin и использую созданный мной API.Я следовал руководству по использованию API, но код после асинхронной операции никогда не выполняется, он выпрыгивает в основную функцию.

Код точно такой же, как в учебнике, которому я следовал,Я не нашел никакой информации, так как нет сообщения об ошибке.

private async void ChecarCredenciales(string username, string password)
        {
            HttpClient client = new HttpClient();
            var url = "http://localhost:57008/api/operadores/" + username;
            var response = await client.GetStringAsync(url).ConfigureAwait(false);
            Lecturista = JsonConvert.DeserializeObject<Operadores>(response);
        }

JsonConvert.DeserializeObject никогда не выполняется, поэтому переменная Lecturista никогда не инициализируется.

Заранее спасибо.

1 Ответ

2 голосов
/ 09 мая 2019

Сначала, так как другие уже прокомментировали, измените ваш метод на async Task, а не на private async Task ChecarCredenciales(string username, string password){

Второй в вашем блоке await, который вы говорите, чтобы продолжить в контексте потока Threadpool, а не в том же контексте синхронизацииделая ConfigureAwait(false);.Я бы посоветовал вам продолжить в том же контексте, поскольку на следующем шаге вам требуются результирующие данные

var response = await client.GetStringAsync(url);
Lecturista = JsonConvert.DeserializeObject<Operadores>(response); 
...