0

updater.SearchByFunctionName は 5 ~ 10 秒後に戻ります。作業中にプログレス バーの値を増やしたいのですが、止まりません。

私はスレッド化に慣れていないので、非常に基本的なものかもしれませんが、わかりません。

           Thread t = new Thread(delegate()
            {
                updater.SearchByFunctionName(testsuiteBox.SelectedValue.ToString(), functionNameBox.Text);
            });

            t.Start();

            progressBar.Value = 0;


            while(t.IsAlive)
            {

                Thread.Sleep(1000);

                if (progressBar.Value >= 200 )

                    {

                        progressBar.Value = 0;
                    }

                    progressBar.Value += 20;
            }
4

1 に答える 1

3

UI スレッドをブロックしているため、プログレスバーの更新が妨げられています。

を使用しTimer、イベントをイベントに添付してTick、そこに進行状況バーを更新するコードを配置する必要があります。

また、マーキー スタイルの進行状況バーを手動で作成しているようです。 ProgressBarこのビルトインをサポートしています。次を追加できます。

myProgressBar.Style = ProgressBarStyle.Marquee;

を適切なものに設定できMarqueeAnimationSpeedます。その後、何もする必要はありません。

于 2012-09-21T13:37:29.433 に答える