70-526 Resumen 5/8: Operaciones Asíncronas.
Administrando tareas en segundo plano con BackgroundWorker:
· El componente BackgroundWorker permite ejecutar operaciones en un hilo de ejecución separado. Llamando al método BackgroundWorker.RunWorkerAsync comienza la ejecución en segundo plano. El método manejador del evento DoWork contiene el código que se ejecutará en un hilo separado.
· Para pasar argumentos a la ejecución del método, usa la sobrecarga del método BackgroundWorker.RunWorkerAsync que acepta un objeto como parámetro. Luego, se puede obtener dicho parámetro desde la propiedad DoWorkEventArgs.Argument.
· El evento BackgroundWorker.RunWorkerCompleted es disparado cuando el proceso se completa.
· Es posible habilitar la cancelación de un proceso en segundo plano configurando la propiedad booleana BackgroundWorker.WorkerSupportsCacellation a True. Entonces se indica al BackgroundWorker que cancele el proceso llamando al método BackgroundWorker.CancelAsync, el cual ajusta la propiedad BackgroundWorker.CancellationPending a True. Entonces se debe evaluar dicha propiedad para abortar la ejecución de la lógica del método DoWork.
· Se puede informar del progreso de la operación en segundo plano, primero hay que ajustar la propiedad BackgroundWorker.WorkerReportsProgress a True. Puedes entonces llamar al método BackgroundWorker.ReportProgress desde el que se enviará el progreso. La ejecución de dicho método disparará el evento BackgroundWorker.ProgressChanged el cual se debe manejar para tomar la decisión deseada con dicha información.
Modelo asíncrono de desarrollo:
· Remember: 70-536 Resumen 4/7: Threading, dominios de aplicación y servicios Windows.
· Modelo asíncrono de desarrollo. La invocación..
· Modelo asíncrono. El control.
· Modelo asíncrono. Espera y finalización.
· Modelo asíncrono. Sincronización.
· Modelo asíncrono. Modificar controles desde otros hilos.
· Modelo asíncrono. Deadlocks.
CrossPosting
desde vtortola.NET
70-526 Resumen 5/8: Operaciones Asíncronas.