Episodio
Seis Recomendaciones esenciales para Async: Introducción
Async introduce algunos conceptos nuevos. No son difíciles, solo que no está familiarizado. En el último año Lucian Wischik ha estado viendo cómo las personas usan async/await en C# y VB. Esta serie distila los tres patrones asincrónicos principales y antipatrones, y las tres principales sugerencias para escribir sus propias bibliotecas asincrónicas.
Sugerencias:
- Async void es solo para controladores de eventos de nivel superior y cosas similares a eventos. No lo use en ningún otro lugar del código.
- Es fundamental distinguir el trabajo enlazado a la CPU (debe realizarse en el grupo de subprocesos) del trabajo enlazado a E/S (que no es necesario).
- Puede encapsular los eventos en las API de devolución de tareas y esperarlos. Esto puede simplificar drásticamente el código.
- Los métodos de biblioteca asincrónicos no deben mentir: no deben usar Task.Run internamente en secreto y deben exponer una firma asincrónica si y solo si su implementación es asincrónica.
- Los métodos de biblioteca asincrónicos deben tener API asincrónicas fragmentadas no chatty. Pero si chatty es inevitable, conozca estas micro-optimizaciones para reducir las sobrecargas de asignación del montón.
- Los métodos de biblioteca asincrónica deben tener en cuenta la tarea. ConfigureAwait(false) para reducir su impacto en la cola de mensajes de la interfaz de usuario.
Si comprende el flujo básico de control en un método asincrónico, esos tres puntos se colocan naturalmente. En este primer vídeo de introducción se explica el flujo de control.
Las diapositivas y el código fuente están disponibles en el blog de Lucian.
Async introduce algunos conceptos nuevos. No son difíciles, solo que no está familiarizado. En el último año Lucian Wischik ha estado viendo cómo las personas usan async/await en C# y VB. Esta serie distila los tres patrones asincrónicos principales y antipatrones, y las tres principales sugerencias para escribir sus propias bibliotecas asincrónicas.
Sugerencias:
- Async void es solo para controladores de eventos de nivel superior y cosas similares a eventos. No lo use en ningún otro lugar del código.
- Es fundamental distinguir el trabajo enlazado a la CPU (debe realizarse en el grupo de subprocesos) del trabajo enlazado a E/S (que no es necesario).
- Puede encapsular los eventos en las API de devolución de tareas y esperarlos. Esto puede simplificar drásticamente el código.
- Los métodos de biblioteca asincrónicos no deben mentir: no deben usar Task.Run internamente en secreto y deben exponer una firma asincrónica si y solo si su implementación es asincrónica.
- Los métodos de biblioteca asincrónicos deben tener API asincrónicas fragmentadas no chatty. Pero si chatty es inevitable, conozca estas micro-optimizaciones para reducir las sobrecargas de asignación del montón.
- Los métodos de biblioteca asincrónica deben tener en cuenta la tarea. ConfigureAwait(false) para reducir su impacto en la cola de mensajes de la interfaz de usuario.
Si comprende el flujo básico de control en un método asincrónico, esos tres puntos se colocan naturalmente. En este primer vídeo de introducción se explica el flujo de control.
Las diapositivas y el código fuente están disponibles en el blog de Lucian.
¿Quiere hacer algún comentario? Comunique un problema aquí.