1

メイン スレッドが重い計算を行っている間、ポップアップ ウィンドウにプログレス バーを表示する必要があります。私は Oracle API を使用しています。すべての重い作業はこの API の 1 つの関数を呼び出すことで完了します。そのため、API のコードがないため、backgroudworker の更新を使用できません。ProgressBar と Timer を使用して新しいフォームを作成しようとしましたが、timer_Click イベントが発生しません!!(???)

何か案が??

4

1 に答える 1

11

私のメインスレッドが重い計算をしている間。

違う。Windows アプリケーションのメイン スレッド内で重い計算を行わないでください。

API が進行状況を報告する方法を提供していない場合、実行された作業の正確なパーセンテージを知ることができないため、計算の進行中に回転アニメーションを表示することが最善の方法です。したがって、計算をBackgroundWorker内に配置し、計算を実行する前にいくつかの回転アニメーションを表示し (それ自体はDoWorkイベント内で実行する必要があります)、作業が完了したらアニメーションを非表示にします ( RunWorkerCompletedEvent )。

ProgressBar には、無限の進行をエミュレートするためにStyle設定できるプロパティがあります。Marquee

于 2012-09-20T07:34:43.713 に答える