Tabla de contenido:
- Definición: ¿Qué significa la llamada al método asincrónico?
- Techopedia explica la llamada al método asincrónico
Definición: ¿Qué significa la llamada al método asincrónico?
Una llamada a método asincrónico es un método utilizado en la programación .NET que regresa a la persona que llama inmediatamente antes de completar su procesamiento y sin bloquear el hilo de llamada.
Cuando una aplicación llama a un método asincrónico, puede ejecutarse simultáneamente junto con la ejecución del método asincrónico que realiza su tarea. Se ejecuta un método asincrónico en un hilo separado del hilo principal de la aplicación. Los resultados del procesamiento se obtienen a través de otra llamada en otro hilo.
Los métodos asincrónicos ayudan a optimizar la ejecución de los recursos que dan como resultado una aplicación escalable. Se utilizan para ejecutar tareas que requieren mucho tiempo, como abrir archivos grandes, conectarse a computadoras remotas, consultar una base de datos, llamar a servicios web y formularios web ASP.NET.
La llamada de método asincrónico también puede denominarse invocación de método asincrónico (AMI).
Techopedia explica la llamada al método asincrónico
El método asincrónico difiere del método síncrono en la forma en que regresa de la llamada. Mientras que una llamada al método asincrónico regresa inmediatamente, permitiendo que el programa que realiza la llamada realice otras operaciones, las llamadas al método sincrónico esperan a que el método se complete antes de continuar con el flujo del programa.
El marco .NET tiene una infraestructura asincrónica incorporada para que cualquier método pueda invocarse asincrónicamente sin alterar su código.
.NET Framework proporciona dos patrones de diseño para implementar el método asincrónico, que son aquellos que usan delegados asincrónicos (objetos IASyncResult) y eventos. El patrón de los delegados asíncronos es más complejo y proporciona flexibilidad, lo que lo hace muy adecuado para varios modelos de programación complejos. El modelo basado en eventos es simple y debe usarse en la mayoría de los casos.
En el patrón de delegados asíncronos, un objeto delegado utiliza dos métodos: BeginInvoke y EndInvoke. BeginInvoke tiene una lista de parámetros, que son similares a su función ajustada, junto con dos parámetros opcionales adicionales; devuelve el objeto IAsyncResult. EndInvoke devuelve dos parámetros (tipo out y ref) junto con el objeto IAsyncResult. BeginInvoke se usa para iniciar la llamada asincrónica, mientras que EndInvoke se usa para recuperar los resultados de la llamada asincrónica.
Los patrones asincrónicos basados en eventos usan una clase que tiene uno o más métodos, llamados MethodNameAsync, que tienen versiones síncronas correspondientes que se ejecutan en el hilo actual. Los patrones basados en eventos también pueden tener un evento MethodNameCompleted y un método MethodNameAsyncCancel. Este patrón permite a la clase comunicarse con operaciones asincrónicas pendientes utilizando el modelo de evento delegado.
Los siguientes son algunos consejos relacionados con los métodos asincrónicos:
- Para una alta concurrencia, se deben evitar los métodos asincrónicos.
- Se debe tener cuidado al pasar referencias de objetos compartidos
- Se debe llamar a EndXXX (llamado al final de una operación asincrónica) para volver a generar excepciones y evitar fallas
- Al capturar y guardar todos los objetos de excepción en un método asincrónico, se puede volver a lanzar durante la llamada EndXXX
- Los controles en la interfaz de usuario que inician operaciones asincrónicas de larga duración deben deshabilitarse si solo son necesarios para ese propósito.
- Los métodos asincrónicos deben implementarse con una comprensión de subprocesos múltiples y donde resulten ser más eficientes que el uso de métodos sincrónicos.