Как отменить все BackgroundWorkers
,
Вы можете сделать это так:
Объявить array
из BackgroundWorkers
Dim MyBackgroundWorkers() As BackgroundWorker
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'' add all your BackgroundWorkers to the array
MyBackgroundWorkers = New BackgroundWorker() {BackgroundWorker1, BackgroundWorker2, BackgroundWorker3, BackgroundWorker4, BackgroundWorker5}
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'' now you can Cancel all of them in a loop
For Each bgw In MyBackgroundWorkers
If bgw.IsBusy Then
bgw.CancelAsync()
End If
Next
End Sub
Предполагается, что ваши BackgroundWorkers
равны controls
, которые вы добавили из панели инструментов во время разработки. Если он был объявлен и добавлен из кода, вам нужно будет внести соответствующие изменения в код Form_Load
.
Попробуй это. Надеюсь, что это помогает.