я реализовал прогресс бар, как это:BackgroundWorker ошибочна
TableCreation.ProgressBar2.Value = 0
TableCreation.ProgressBar2.Maximum = CInt(FieldsNumber)
'==================
For SecondLoopCount = 1 To CInt(FieldsNumber) Step 1
'----------------------------------------------
TableCreation.ProgressBar2.Value = SecondLoopCount
TableCreation.ProgressBar2.Refresh()
TableCreation.ProgressBar2.Show()
' ....... Some Code ......
Next
И я обрабатывать BackgroundWorker
«s DoWork
событие в этом суб:
Public Shared Sub bw_DoWork(ByVal sender As Object, ByVal e As DoWorkEventArgs)
Dim bw As BackgroundWorker = New BackgroundWorker
Dim worker As BackgroundWorker = CType(sender, BackgroundWorker)
For i = 1 To 10
If worker.CancellationPending = True Then
e.Cancel = True
Exit For
Else
' Perform a time consuming operation and report progress.
System.Threading.Thread.Sleep(500)
worker.ReportProgress(i * 10)
End If
Next
End Sub
Но когда я делаю это:
Dim e1 As System.ComponentModel.DoWorkEventArgs
TableCreation.ProgressBar2.Value = SecondLoopCount
TableCreation.ProgressBar2.Refresh()
TableCreation.ProgressBar2.Show()
bw_DoWork(sender, e1)
Где sender
- Объект, он выдает ошибку:
Unable to cast object of type 'e_store.TableCreation' to type 'System.ComponentModel.BackgroundWorker'.
TableCreation
всего лишь форма в моем проекте.
Что такое отправитель, когда вы вызываете _bw_DoWork (отправитель, e1) _ – BlackICE
Никогда не пишите '= True' или' Step 1'. Кроме того, вы посмотрели документацию для «BackgroundWorker», чтобы узнать, как использовать «BackgroundWorker»? Это не так. – Ryan
@minitech Да, я знаю, что предполагается использовать. И у меня есть поиск в документации, но, к сожалению, я не могу понять использование фонового работника. Очевидно, что мне нужна помощь здесь. –