Я использовал BackgroundWorker для решения проблемы в моем приложении winforms, я хотел иметь возможность отменить длительную операцию и видеть результаты в реальном времени в ListBox во время выполнения операции. Он отлично работает, за исключением случаев, когда я хочу добавить флажок с дополнительными условиями. Проблема заключается в том, что я хочу запустить сразу несколько операций. Ex. как XX, так и YY, выполняющие XX, а затем начинаются с YY в этом порядке.Выполнение того же BackgroundWorker несколько раз в зависимости от условия?
Private Sub UpdateDB_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTestAll.Click
If cbxTestYY.Checked OrElse cbxTesteXX.Checked Then
SetBusyState(True)
If cbxTestXX.Checked Then
bkWorker.RunWorkerAsync(1)
End If
If cbxTesteYY.Checked Then
bkWorker.RunWorkerAsync(2)
End If
End If
End Sub
Private Sub bkWorker_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bkWorker.DoWork
If bkWorker.CancellationPending Then
e.Cancel = True
Exit Sub
Else
If e.Argument = 1 Then
AddItemToListBox("", "XX")
TestUnits(_XXDimensionUnits, True)
AddItemToListBox(" Calculating Units ")
TestUnits(_XXCalculationUnits, False)
End If
If e.Argument = 2 Then
AddItemToListBox("", "YY")
TestUnits(_YYCalculationUnits, False)
End If
End If
End Sub
Я знаю, что я пытаюсь выполнить несколько задач на одном BackgroundWorker, которые не разрешены, но я не имею ни малейшего представления, как решить эту проблему, так что работает в определенном порядке. Назначьте всю помощь !!
Спасибо Гансу !!! Ты король! Решила мою проблему при первом выстреле! – Haris