SoloCodigo

Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: deb82 en Martes 26 de Enero de 2010, 16:04

Título: VB se me queda bloqueado
Publicado por: deb82 en Martes 26 de Enero de 2010, 16:04
Buenas,
Tengo una mini aplicacion que consiste en descargar paginas web de una lista,
El problema esta que se me bloquea en la llamada getchunck,al cabo de un par de llamadas, descarga unas cuantas bien, pero al cabo de un rato se queda bloqueado hasta que el programa no responde en la linea

 vtData = i2.GetChunk(lCHUNKSIZE, icString)

os dejo aqui bajo el codigo por si alguien sabe el porque.


Private Sub i2_StateChanged(ByVal State As Integer)

    Const lCHUNKSIZE As Long = 1024
    Dim vtData As Variant ' Data variable.


    Select Case State

    Case icError ' 11
           
            MsgBox (i2.ResponseCode & ":" & i2.ResponseInfo)
            End
    Case icResponseCompleted  ' 12
 Dim strData As String: strData = ""
                 Dim bDone As Boolean: bDone = False

                 ' Get first chunk.
                 vtData = i2.GetChunk(lCHUNKSIZE, icString)
                 DoEvents

                 Do While Not bDone

                     strData = strData & vtData
                     ' Get next chunk.
                     vtData = i2.GetChunk(lCHUNKSIZE, icString)
                     DoEvents

                     If Len(vtData) = 0 Then
                         bDone = True
                     End If
                 Loop

              Case icDisconnected
                  Debug.Print "* Disconnected"
                  Unload Me

             End Select
  t2.Text = t2.Text & strData
End Sub
Título: Re: VB se me queda bloqueado
Publicado por: Nebire en Jueves 25 de Febrero de 2010, 11:33
Esto no es un problema de VB, esto es un problema de tráfico... Falta saber si tienes o no garantías de acceso a la página.

Si la llamada la hicieras asíncrona, habría más posibilidades, y sobre todo podrías en un momento dado tomar otro tipo de acciones: reintentar, descartar esa y continuar...