等待操作后的代码未执行

时间:2019-05-09 19:04:26

标签: c# async-await jsonconvert

我正在编写一个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 个答案:

答案 0 :(得分:2)

首先,正如其他已经评论过的一样,将您的方法更改为async Task,而不是像private async Task ChecarCredenciales(string username, string password){

第二步,您说要通过执行await在Threadpool线程上下文而不是在相同的同步上下文上继续。我建议您继续使用相同的上下文,因为下一步需要生成的数据

ConfigureAwait(false);