メイン スレッドが重い計算を行っている間、ポップアップ ウィンドウにプログレス バーを表示する必要があります。私は Oracle API を使用しています。すべての重い作業はこの API の 1 つの関数を呼び出すことで完了します。そのため、API のコードがないため、backgroudworker の更新を使用できません。ProgressBar と Timer を使用して新しいフォームを作成しようとしましたが、timer_Click イベントが発生しません!!(???)
何か案が??
私のメインスレッドが重い計算をしている間。
違う。Windows アプリケーションのメイン スレッド内で重い計算を行わないでください。
API が進行状況を報告する方法を提供していない場合、実行された作業の正確なパーセンテージを知ることができないため、計算の進行中に回転アニメーションを表示することが最善の方法です。したがって、計算をBackgroundWorker内に配置し、計算を実行する前にいくつかの回転アニメーションを表示し (それ自体はDoWorkイベント内で実行する必要があります)、作業が完了したらアニメーションを非表示にします ( RunWorkerCompletedEvent )。
ProgressBar には、無限の進行をエミュレートするためにStyle
設定できるプロパティがあります。Marquee