Hola,

Gustavo, tenes razon en eso… y hoy a la tarde comprobe que ya se estaba
usando el mismo thread (porque el “servicio” en realidad es un framework mio
que ya soporta Invoke para que no haya problema con los controles). De todas
formas no me esta funcionando bien Burrow en ese momento. Cuando lo vea de
nuevo les comento, porque posiblemente no pase por ahi el tema.

 

En realidad mi pregunta era como lo debería manejar un caso asi, porque
estaría actualizando la misma pantalla utilizando 2 sessions diferentes, y
hacer esto significa que las 2 sessions pueden tener informacion diferente
(porque no hicieron el flush, porque no hay transacciones cerradas, cache de
1er nivel, etc…). Ademas a esto se le suma que en WinForms el ciclo de vida
de las sesiones es mas largo, y que no se muy bien como manejar Sessions en
WinForms (estoy siguiendo algunos guidelines de Fabio, o mejor dicho lo que
entendí de esos guidelines) J

 

Saludos!

 

From: [email protected]
[mailto:[email protected]] On Behalf Of Gustavo Ringel
Sent: Sunday, January 11, 2009 04:12
To: [email protected]
Subject: [NHibernate-Hispano] Re: Conversaciones y Threads

 

Si estas adentro del from podes usar invoke y ejecutar en el thread del
GUI...eso se hace en general para actualizar controles ya que es la unica
forma, pero bueno, podes asociar tambien la conversacion al thread del
Form...



Gustavo.

2009/1/11 Diego Jancic <[email protected]>

Hola gente!,

(Escenario: WinForms + NH Trunk + 1era vez con Burrow)

Lo que necesito hacer es que un Form llame a un servicio de forma
asincrónica, y cuando se ejecuta el callback se actualice informacion.

El problema es que el Form tiene una conversación de Burrow, y cuando el
servicio asincrónico realiza el Callback lo esta haciendo en un nuevo
thread. Por ese motivo no estoy en la misma conversación y todavía no
encontré forma de unirme a la otra.

 

Deberia andar si algo asi? :

(simplificado)

 

Guid currentConversation;

void UnMetodoDelForm()

{

      currentConversation = new BurrowFramework().CurrentConversation.Id;

 

      LlamarAlServicio(callback);

}

private void callback (object sender, EventArgs args)

{

      new BurrowFramework().InitWorkSpace(currentConversation);

 

      // Cosas con la misma session.      

}

 

Gracias & Saludos!,

Diego

 

 

 




--~--~---------~--~----~------------~-------~--~----~
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
-~----------~----~----~----~------~----~------~--~---

Responder a