Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/07/2008, 11:47
javiercapi
 
Fecha de Ingreso: agosto-2005
Mensajes: 33
Antigüedad: 19 años, 6 meses
Puntos: 0
Respuesta: OleDbCommand demasiado lento

gracias por el consejo, estoy buscando informacion al respecto y no logro integrar el BackgroundWorker1 en mi aplicación, podrias, segun el codigo que envie antes, en que parte deberia poner este codigo que encontre:

Código:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        BackgroundWorker1.RunWorkerAsync()
        If BackgroundWorker1.CancellationPending Then
            Exit Sub
        End If
    End Sub

    Private Sub BackgroundWorker1_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
        Dim i As Integer = 0
        For i = 0 To 100
            BackgroundWorker1.ReportProgress(i)
        Next
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        BackgroundWorker1.CancelAsync()
        Label1.Text = "Proceso cancelado"
        MsgBox(ProgressBar1.Value)
    End Sub


    Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged
        ProgressBar1.Value = e.ProgressPercentage
    End Sub

    Private Sub BackgroundWorker1_RunWorkerCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted
        Label1.Text = "Proceso completado"
    End Sub
yo lo intente poniendo en el evento click de mi boton:

Código:
  BackgroundWorker1.RunWorkerAsync()
        If BackgroundWorker1.CancellationPending Then
            Exit Sub
        End If
y cambiando esto:

Código:
    Private Sub BackgroundWorker1_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
        Dim i As Integer = 0
        For i = 0 To 100
            BackgroundWorker1.ReportProgress(i)
        Next
    End Sub
por esto:

Código:
    Private Sub BackgroundWorker1_DoWork(ByVal sender As Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
        Dim i As Integer = 0
        For i = 0 To dgv1.rows.count -2
            BackgroundWorker1.ReportProgress(i)
        Next
    End Sub
pero nada, sigue pasando lo mismo, que hace el trabajo pero sin mostrar el progressbar, y dejando de responder si se cambia de ventana o se intenta hacer click en el boton cancelar