Excelファイルを読み込んでいるときに進行状況を表示しようとしています。最大行番号と最後に読み取った行番号を含むオブジェクトを共有します。150 行ごとに値をオブジェクトに保存し、それを待機させ、オブジェクトのロックが解除されるまで読み取りを停止します。
ダイアログ ウィンドウで、ProgressBar
syncExec または asyncExec メソッドを使用してオブジェクト内の値を更新しようとしました。メソッドを呼び出した直後にオブジェクトのロックが解除されます。
これらのメソッドは、ランナブルを実行するのに最も「適切な」機会を待っていることを知っています。しかし、私が理解していないように見えるのは、呼び出されている間に何も実行されていない場合、これらのメソッドが実行されないのはなぜですか?
私の実際の状況では、asyncExec は読み取りプロセスの最後にのみ ProgressBar を更新し、synExec はアプリケーションをハングさせます。これは、Object#wait の実行中に実行できないためです。
読んでくれてありがとう、そして答えてくれてありがとう。