none
Session in Thread , generación de imagenes RRS feed

  • Pregunta

  • Hola a todos!.

    Voy a intentar ser clara en mi pregunta.

     

    Tengo 4 buscadores en una aplicación web, la busqueda se hace sobre documentos del tipo Licencias, Polizas, etc. Cada documento tiene un pdf o tiff asociado. En el resultado de la busqueda cuando haces click sobre un documento podes visualizar estos archivos pdf o tiff. Lo que estoy haciendo para visualizar estos pdf/tif es largar un proceso que cada pagina del pdf/tif se convierta en jpq y se pueda visualizar en el sitio.

    Para la generacion de las imagenes jpg uso Thread. 

    Mi problema es que cuando quieran visualizar un archivo distinto tengo que cortar el thread del archivo anterior y largar uno nuevo . Para esto estoy usando variables de Session. El tema es que teniendo 4 buscadores que haran lo mismo queria centralizar los procesos en una clase o control de usuario, pero tengo el problema que la variable de session que consulto dentro del thread muere en algun momento...

    ahora me funciona todo pero tengo los mismos procedimientos en cada buscador 

    tiene alguna idea de como puedo llevar todo este codigo a un solo lugar, ser llamado desde cada pagina(buscador) y utilizar Session para cancelar o consultar datos sobre el thread de generacion de las imagenes?

    Gracias desde ya!.

    martes, 27 de julio de 2010 14:53

Respuestas

  • Tu variable de sesión seguirá "viva" mientras la sesión lo haga. Podés probar teniendo un método dentro del Global.asax que gestione estas variables en el Session_Start y las verifique en la Session_End.Si eso no te funciona, usando métodos GET o POST para esas variables.

    En cualquier caso, el hilo debe morir cuando termina de convetir la imagen a JPG.

    Podés tener incluso un .aspx que lo único que va hacer sea esa conversión, y en el control de tipo imagen que la cargue en su source sería ese "archivo.aspx" y la variable por GET o POST. Con GET sería algo así como:

    <img src="archivo.aspx?img=1" border=1>
    

    Y en el Page_Load del archivo.aspx tendrías la conversión a JPG que hacés, devolviendo la imagen por medio del:

    Response.BinaryWrite( (byte[]) {imagen} );
    

     

    Un ejemplo más extenso lo podés ver en:

    http://www.developerfusion.com/article/3933/retrieving-images-from-a-database/3/

     

    Espero haber resuelto algo y no haberte metido más dudas.

    jueves, 29 de julio de 2010 21:33