使用C#和Xamarin.Forms进行异步/等待调试

时间:2018-09-12 16:45:17

标签: c# debugging xamarin.forms async-await

我下面有代码,在标有“我没有执行收益”的那一行上。我从信息中得到的最好的信息是调试器没有运行,因为打开了另一个任务,并且预期它不会返回(在调试器中)。但是,我不知道为什么她的错误没有返回。

您能告诉我如何得到此行的错误吗?可能是一些代码更改或某种调试技术。

public GridColetas ()
{
    InitializeComponent ();

    FillGridAsync().Wait();

}


private async Task FillGridAsync()
{
    Servidor meuServidor = new Servidor();
    meuServidor.ID_servidor = (int)Application.Current.Properties["servidor"];
    meuServidor.token = (string)Application.Current.Properties["token"];

    ExceptionDispatchInfo capturedException = null;
    string erro = string.Empty; ;

    try
    {
        var client = new HttpClient();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", meuServidor.token);
        //problem on line below                    
        string response = await client.GetStringAsync(meuServidor.UrlGrid);
    }
    catch (Exception ex)
    {
        capturedException = ExceptionDispatchInfo.Capture(ex);
        erro = ex.InnerException.InnerException.ToString();
    }

    if (capturedException != null)
    {
        await DisplayAlert("Não foi possível contatar o servidor",
            "Não foi possível contatar o servidor. Verifique esses itens: (1) você está em área de cobertura? " +
            "(2) Escolheu o servidor correto na lista abaixo? (3) Verificou com matriz se houve troca do servidor?", "OK");
        capturedException.Throw();
        return;
    };
}

0 个答案:

没有答案