Red de conocimiento informático - Computadora portátil - Cómo utilizar la programación asincrónica en C#

Cómo utilizar la programación asincrónica en C#

Métodos asíncronos de C#: proporcionan una forma sencilla de completar el trabajo que puede tardar mucho tiempo en completarse sin detener el subproceso de la persona que llama. ? La persona que llama a un método asincrónico puede continuar trabajando sin esperar a que se complete el método asincrónico.

Proceso de implementación del código:

///? ltSummary gt

///? ¿Los métodos asincrónicos resuelven el problema de las largas esperas?

///? lt/resumen gt;?

///? nombre = "acción" gt lt/param gt;?

///? nombre="entidad" > lt/param gt;?

///?ltreturns gt lt/returns gt;

¿Público? ¿asincrónico? ¿Tarea? async add(Func lt; FAQ_Info,? VMessage gt? Fun? FAQ_Info? Entidad)

{

¿Regresar? sistema. Threading.Tasks.Task.Run(()?= gt

//Resolver el bloqueo de la interfaz de usuario. Esto no es una verdadera ejecución paralela, sino abrir un nuevo hilo para ejecutar el segmento de código de forma asincrónica.

//La interfaz de usuario principal no esperará a que se devuelva el resultado. Si desea cooperar con el hilo principal, es decir, el desarrollo paralelo, ¿necesita agregar espera para obtener el resultado de devolución de la tarea?

{?

Fondos (entidad);

});

}

Tres modos asíncronos:

1.? Modo de espera, después de que se inicia el método asincrónico y se completa algún otro procesamiento, el hilo original se interrumpe y espera a que se complete el método asincrónico antes de continuar.

2.? En el modo de sondeo, el hilo original comprueba periódicamente si el hilo iniciado está completo. De lo contrario, puede continuar haciendo otras cosas.

3.? En el modo de devolución de llamada, el hilo original siempre se está ejecutando y no es necesario esperar ni comprobar si el hilo iniciado se completa. Una vez que se completa el método de referencia en el subproceso iniciador, el subproceso iniciador llamará al método de devolución de llamada, que procesará la estructura del método asincrónico antes de llamar a EndInvoke.