vtortola.Net

Mayo 8, 2007

Satisfaction

Archivado en: .NET, Personal, Windows — vtortola @ 6:42 pm

avanade.gif

Bueno pues ya es oficial, el día 21 de este mes entraré a formar parte de la plantilla de Avanade, estoy bastante contento ya que cuando vine a Madrid  buscando una buena carrera profesional en el mundo Microsoft, Avanade era uno de mis objetivos prioritarios :)

Modelo Asíncrono. Parte III, espera y finalización.

Archivado en: .NET, C#, Modelo Asíncrono — vtortola @ 11:17 am

Siguiendo con el modelo asíncrono, hoy explicaré como esperar a un thread en concreto y como realizar una finalización síncrona de forma adecuada.
Para finalizar una operación asíncrona de forma síncrona (bloqueando el hilo actual hasta que el secundario termine) podemos hacerlo de dos formas, llamando al método .EndInvoke del objeto delegado, con el inconveniente de que si tenemos definido un
AsyncCallback y hay otro .EndInvoke allí recibiremos una “InvalidOperationException en alguno de los dos sitios con el mensaje “EndInvoke can only be called once for each asynchronous operation. que viene a decir “EndInvoke solo puede ser llamado una vez por cada operación asíncrona con la molestia que ello conlleva; la forma elegante es utilizar el método “IAsyncResult. AsyncWaitHandle.WaitOne” que causará la finalización síncrona pero sin modificar el comportamiento que habíamos previsto en un principio, de esta forma podemos forzar la espera a la finalización de un determinado hilo ó grupo de hilos que por ejemplo realizasen tareas que habría que completar inevitablemente para poder continuar, con la ventaja de que se ejecutarían de forma paralela.

El ejemplo esta basado en el del ejemplo anterior, Modelo Asíncrono. Parte II, control.

(más…)

Blog de WordPress.com.