none
Aplicacion freezeada al hacer tunneling con php y vb.net RRS feed

  • Pregunta

  • Hola amigos.

    Les escribo para pedirles ayuda con el problema que tengo, el cual lo describo a continuacion


    realice una aplicacion de chat en vb.net la cual debe conectarse a una base de datos remota (MYSQL) en internet, todo andaba bien ya que esta conexion la hacia con ado.net al puerto 3306, hasta que los proovedores del hosting cerraron este puerto y no me dieron mas opcion que hacer HTTP Tunneling para que mi chat pueda conectarse con la BDD.

    Este chat tiene dos interfases la del cliente que es desde una web y la de la empresa que atiende a las personas que ingresan al chat que como les dige esta en VB.net(la hice de escritorio porque necesitaba hacer blinquearformularios y otras cosas mas que desde web no se pueden hacer).

    Lo que hice para el HTTP Tunneling es crear formularios php intermedios con todas las consultas y respuestas de la BDD, y que dicha respuesta este en formato XML, para capturarla y parsearla en .net, todo salio bien en las pruebas locales pero al probar con la conexion remota la aplicacion se FREEZEABA osea se quedaba colgadahasta recibir respuesta, para solucionar eso use el BrackgorunWorker de .net y el metodo INVOKE  para resolver el problema de hilos cruzados, ya que todas las operacines de carga del XML y parseo(que se deben realizar cada 3 segundos) las puse en el DOWORK del BckgroundWorker, y los resultados oftenidos por estas operaciones del XML se deben cargaren un ListView y en otros controles.


    EL PROBLEMA ES QUE DEBIDO A ESTA COMUNICACION ENTRE HILOS LA APLICACION  SE SIGUE FREEZEANDO COMO SI LOS PROCESOS XML NO ESTUBIESEN EN EL BACGROUNDWORKER.

    ya intente crear el ListView de forma dinamica en el background worker para asi no usar el inoke:

    Private Sub BWOnline_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BWOnline.DoWork


    XML.......

    LLenadoListview()
    end sub

    Sub LLenadoListview()
    If Me.InvokeRequired Then
                  Me.Invoke(New MethodInvoker(AddressOf  LlenadoListview))
                Else
                 

                  lwClients.Items.Clear()

    llenado del List.......

    en sub

    Bueno como digue para evitar esto inten te crear el Listview dinamicamente dentro del nuevo hilo y cuando tengo que añadirlo a la coleccion de controles del form, me sale cross theads
    y para solucionar esto tengo que usar el INVOKE y caigo en el mismo problema, PORFAVOR demme ideas o soluciones de que debo haer para que mi aplicaion no se freezee, gracias

    att.
    Marcelo

    • Cambiado Enrique M. Montejo lunes, 2 de mayo de 2011 12:00 otros lenguajes (De:Lenguaje VB.NET)
    viernes, 12 de enero de 2007 0:55