Problema con await en un método asíncrono C#

publicado por: Anonymous

Haciendo await a un método asíncrono me salta el siguiente error:

Problema await

El caso es que el método que ejecuta está tal y como pide:

#region Constructors
    public UsuarioCentroViewModel()
    {
        //Singleton
        instance = this;
        .
        .
        .
        //Load data
        EjecutarCenter();

    }
    #endregion

public async void EjecutarCenter()
    {
        await LoadCentroActual();
    }

public async Task LoadCentroActual()
    {
        var centroActual = await apiService.Get<UsuarioCentro>(
             "http://xxx",
            "/api",
            "/xxx",
            TokenType,
            Token,
            0);

        if (!centroActual.IsSuccess)
        {
            await dialogService.ShowMessage("Error", "Error al obtener el centro actual");
            return;
        }

        UsuarioCentroViewModel.GetInstance().CentroActual = (UsuarioCentro)centroActual.Result;

        Usuario = CentroActual.Usuario;
        IdCentro = CentroActual.IdCentro;
        Usuario_Centro = CentroActual.Usuario_Centro;
    }

¿Alguien sabe como solucionarlo y/o sabe alguna forma mejor de hacerlo?

Gracias de antemano.

solución

Tu problema no esta en el metodo LoadCentroActual() si no en el método que ejecuta LoadCentroActual(). El método donde se ejecuta LoadCentroActual() tiene que estar marcado como async para poder utilizar la keyword await:

public async void EjecutarCenter()
{
   await LoadCentroActual();
}

De lo contrario tendras que ejecutar el metodo invocando la propiedad Task.Result:

public void EjecutarCenter()
{
   LoadCentroActual().Result;
}
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *