¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Modelos para la programación asincrónica

.NET Framework 4.5

.NET Framework proporciona tres patrones para realizar las operaciones asincrónicas:

  • El patrón de programación asincrónica (APM) (también llamado patrón IAsyncResult), en el que las operaciones asincrónicas requieren los métodos Begin y End (por ejemplo, BeginWrite y EndWrite para las operaciones asincrónicas de escritura). Este patrón ya no se recomienda para nuevo desarrollo. Para obtener más información, vea Modelo de programación asincrónica (APM).

  • El patrón asincrónico basado en eventos (EAP), que requiere un método que tiene el sufijo Async y también uno o más eventos, tipos de delegado de controlador de eventos y tipos derivados de EventArg. EAP apareció por primera vez en .NET Framework 2.0. Ya no se recomienda para nuevo desarrollo. Para obtener más información, vea Patrón asincrónico basado en eventos (EAP).

  • El patrón asincrónico basado en tareas (TAP), que utiliza un método único para representar el inicio y la finalización de una operación asincrónica. TAP se introdujo en .NET Framework 4 y es el método recomendado para programación asincrónica en .NET Framework. Las palabras clave async y await en C# y los operadores Async y Await en Visual Basic agregan compatibilidad de lenguaje para TAP. Para obtener más información, vea Modelo asincrónico basado en tareas (TAP).

Para una comparación rápida de cómo los tres patrones modelan las operaciones asincrónicas, considere un método Read que lea una determinada cantidad de datos en un búfer proporcionado comenzando en un desplazamiento especificado:

public class MyClass
{
    public int Read(byte [] buffer, int offset, int count);
}

El equivalente de APM para este método expondría los métodos BeginRead y EndRead:

public class MyClass
{
    public IAsyncResult BeginRead(
        byte [] buffer, int offset, int count, 
        AsyncCallback callback, object state);
    public int EndRead(IAsyncResult asyncResult);
}

El equivalente EAP expondría el siguiente conjunto de tipos y miembros:

public class MyClass
{
    public void ReadAsync(byte [] buffer, int offset, int count);
    public event ReadCompletedEventHandler ReadCompleted;
}

El equivalente TAP expondría el siguiente método ReadAsync único:

public class MyClass
{
    public Task<int> ReadAsync(byte [] buffer, int offset, int count);
}

Para obtener información completa sobre TAP, APM y EAP, consulte los vínculos de la sección siguiente.

Título

Descripción

Modelo de programación asincrónica (APM)

Describe el patrón heredado que utiliza la interfaz IAsyncResult para proporcionar un comportamiento asincrónico. Este patrón ya no se recomienda para nuevo desarrollo.

Patrón asincrónico basado en eventos (EAP)

Describe el patrón heredado basado en eventos para proporcionar el comportamiento asincrónico. Este patrón ya no se recomienda para nuevo desarrollo.

Modelo asincrónico basado en tareas (TAP)

Describe el nuevo patrón asincrónico basado en el espacio de nombres System.Threading.Tasks. Este patrón es el método recomendado para la programación asincrónica en .NET Framework 4 y versiones posteriores.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft