0
WinFormsアプリケーションの問題を解決するためにBackgroundWorkerを使用しました。長時間実行されている操作をキャンセルし、その操作を実行中に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の上で複数のタスクを実行しようとしています知っているが、私はそれが特定の順序で実行されますので、これを解決する方法任意のアイデアを持っていけません。 すべてのヘルプをAppriciate!
ありがとうハンス!あなたは王様です!最初のショットで私の問題を解決! – Haris