es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo usar await en este escenario

Tengo un método mostrado a continuación:

static public async Task GetStudentDetails(studentinfo stu)
{
   // aquí estoy usando una llamada al webservice
   // realizar otras operaciones
}

y este método es llamado desde otro método como se muestra a continuación:

static public void GetUIWindow((int a, int b)
{
   someanothercall();
   studentinfo s = new Studentinfo();
   GetStudentDetails(s); // aquí, ¿cómo puedo usar la palabra clave await?
}

¿Cómo puedo usar la palabra clave await aquí?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para utilizar la palabra clave await en el método GetUIWindow, es necesario que el método también sea asíncrono. Esto se puede lograr mediante la adición de la palabra clave async en la firma del método y utilizando la palabra clave await al llamar al método GetStudentDetails.

    El código actualizado se verá así:

    static public async void GetUIWindow((int a, int b)
    {
      someanothercall();
      studentinfo s = new Studentinfo();
      await GetStudentDetails(s);
    }
    

    Tenga en cuenta que el tipo de retorno del método ha sido cambiado a void, ya que no tiene sentido devolver un objeto Task ya que no hay un llamador para esperar la finalización del método.

    Además, asegúrese de que todos los demás métodos en la cadena de llamadas que llevan al método que utiliza la palabra clave await también estén marcados como asíncronos.

Comments are closed.