Encontré Difference between […]Async and Begin[…] .net asynchronous APIs pregunta pero this answer me confundió un poco.APM, EAP y TPL en la Programación de Socket
Hablando de estos patrones, Stephen dijo:
mayoría * métodos asincrónicos (con eventos * completadas correspondiente) están usando el modelo asincrónico basado en eventos. El más antiguo (pero aún perfectamente válido) Begin * y End * es un patrón llamado Modelo de Programación Asíncrona.
La clase Socket es una excepción a esta regla; sus * métodos Async no tienen ningún evento correspondiente; es esencialmente solo APM hecho de una manera para evitar asignaciones de memoria excesivas.
Lo entiendo como usar * Los métodos de Async son más eficientes, al menos cuando se trata de enchufes. Pero luego mencionado tareas de la Biblioteca paralelo:
Sin embargo, tanto APM y EBAP están siendo reemplazados con un enfoque mucho más flexible basado en la biblioteca de tareas en paralelo. Como el TPL puede ajustar APM fácilmente, es probable que las clases antiguas no se actualicen directamente; los métodos de extensión se usan para proporcionar equivalentes de Tarea para los viejos métodos de APM.
He encontrado TPL and Traditional .NET Asynchronous Programming en MSDN, sé lo básico de TPL, la creación de tareas, cancelaciones, continuaciones, etc, pero todavía no entiendo estas:
¿Cuáles son las ventajas de asincrónica modelo de programación (APM) y el patrón asíncrono basado en eventos (EAP) en comparación entre sí? ¿Cómo puede TPL envolver APM fácilmente? significa que tanto APM como EAP están reemplazados por con TPL?
Y lo más importante: ¿Qué debo usar en la programación de socket?
- APM?
- EAP?
- APM o EAP envueltos en una tarea?
- TPL utilizando los métodos de bloqueo de la clase Socket en las tareas?
- ¿Otro?
ver: http://stackoverflow.com/questions/5834755/turning-async-socket-parallel-and-not-only-concurrent- en-muy-intensivo-applicat –