Я использовал BackgroundWorker для решения проблемы в моем приложении winforms, я хотел иметь возможность отменить длительную операцию и видеть результаты в реальном времени в ListBox во время выполнения операции.Работает нормально, кроме случаев, когда я хочу добавить флажок с дополнительным условием.Проблема в том, когда я хочу запустить несколько операций одновременно.Ex.и XX, и YY сначала выполняют XX, а затем начинают с YY в указанном порядке.
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
Я знаю, что пытаюсь запустить несколько задач на одном фоновом компьютере, что запрещено, но я понятия не имею, какрешить это так, чтобы он работал в определенном порядке.Цени вся помощь !!