Operaciones asincrónicas
Algunas operaciones de base de datos, como las ejecuciones de comandos, pueden tardar mucho tiempo en completarse. En estos casos, las aplicaciones con un único subproceso deben bloquear otras operaciones y esperar hasta que el comando finaliza antes de continuar con otras operaciones. En cambio, el poder asignar la operación de ejecución prolongada a un subproceso en segundo plano permite que el subproceso en primer plano permanezca activo durante toda la operación. En una aplicación Windows, por ejemplo, delegar la operación de larga duración a un subproceso en segundo plano permite que el subproceso de la interfaz de usuario siga respondiendo.
.NET Framework proporciona varios patrones de diseño asincrónicos estándar que pueden utilizar los programadores para aprovechar los subprocesos en segundo plano y liberar a los subprocesos de interfaz de usuario o de alta prioridad para que completen otras operaciones. ADO.NET admite estos mismos patrones de diseño en su clase SqlCommand. En concreto, los métodos BeginExecuteNonQuery, BeginExecuteReader y BeginExecuteXmlReader, emparejados con los métodos EndExecuteNonQuery, EndExecuteReader y EndExecuteXmlReader, proporcionan la compatibilidad asincrónica.
Nota:
La programación asincrónica es una característica fundamental de .NET Framework, y ADO.NET aprovecha los patrones de diseño estándar. Para obtener más información sobre las diferentes técnicas asincrónicas disponibles para los desarrolladores, vea el artículo sobre cómo llamar a métodos sincrónicos de forma asincrónica.
Aunque el uso de técnicas asincrónicas con las características de ADO.NET no agrega ninguna consideración especial, es probable que más programadores utilicen las características asincrónicas en ADO.NET que en otras áreas de .NET Framework. Es importante tener en cuenta las ventajas e inconvenientes de crear aplicaciones multithreading. En los ejemplos siguientes de esta sección se indican varios problemas importantes que los desarrolladores deben tener en cuenta al crear aplicaciones que incorporan funcionalidades multiproceso.
En esta sección
Aplicaciones Windows que usan devoluciones de llamada
Proporciona un ejemplo en el que se muestra cómo ejecutar un comando asincrónico de forma segura, controlando correctamente la interacción con un formulario y su contenido desde un subproceso independiente.
Aplicaciones ASP.NET que usan identificadores de espera
Proporciona un ejemplo en el que se muestra cómo ejecutar varios comandos simultáneos desde una página ASP.NET. Para ello, se usan identificadores Wait para administrar la operación cuando se completan todos los comandos.
Sondeo de aplicaciones de consola
Proporciona un ejemplo que muestra el uso del sondeo para esperar a que se complete la ejecución de un comando asincrónico desde una aplicación de consola. Esta técnica también es válida en una biblioteca de clases u otra aplicación sin una interfaz de usuario.