0

すべてが同じデータテーブルにマージされるいくつかのレポートがあります。ユーザーはいくつかをクリックして実行し、[レコードの検索] ボタンをクリックしてそれらをすべて同時に実行できます。それぞれに時間がかかるため、これらのストアド プロシージャが正常に呼び出されるたびに、ステータス バーのユーザーを更新したいと思います。ただし、プロシージャを呼び出すと、すべてを一覧表示する最後に更新が 1 つしか表示されません。

私がやりたいこと:

'Initialize Progress Components
repCompleted = 0
ProgressBar1.Minimum = 0
ProgressBar1.Maximum = repSel
ProgressBar1.Value = repCompleted
TextBlock2.Text = repCompleted & " of " & repSel & " reports finished"

次に、各レポートが正常に実行されるたびに、repCompleted値を更新して更新します

repCompleted += 1
TextBlock2.Text = repCompleted & " of " & repSel & " reports finished"
ProgressBar1.Value = repCompleted

問題は、サブを終了するまでこれらの更新が行われないことです。1 of 4 completed、、など、それぞれが終了するたびにカウントを進めたいと思います2 of 4 completed

何か案は?

4

1 に答える 1

2

プロセスが(バックグラウンドではなく)フォアグラウンドで実行されている場合、UIはブロックされます。UIが他のこと(プログレスバーの更新など)を自由に行えるように、バックグラウンドで実行する必要があります。BackgroundWorkerクラスを見てください、それはあなたがまさにそれをすることを可能にします。

于 2012-05-03T18:33:40.483 に答える