0

私は、時々、同時に複数のジョブを実行する可能性のあるEclipse rcpアプリケーションを持っています。これらのジョブの一部を指定された期間一時停止する必要がある場合もあります。Thread.sleep() を呼び出すとそれが達成される一方で、他のジョブにも悪影響があるようです。UI を操作しようとすると、アプリのヘッダーに (応答なし) が表示されることさえあります。各ジョブ インスタンスが独自のスレッドを取得すると誤って想定していましたが、最近、そうではないことがわかりました。思いついたのは、ジョブが作成されるたびに Thread インスタンスを明示的に作成し、Job.setThread() を介して前者を後者に設定することだけです。この問題に関するフィードバックは大歓迎です! お時間をいただきありがとうございます!

4

1 に答える 1

1

スレッドプールを管理するのはJobManagerの責任であり、APIはそれについての仮定を宣言していないため、基になるスレッドを直接ハックすることはお勧めしません。

代わりに、次の Job のメソッドを使用してみてください。

#boolean sleep()
#void wakeUp()
#void join()

記事「On the Job: The Eclipse Jobs API」も役立つ場合があります: http://www.eclipse.org/articles/Article-Concurrency/jobs-api.html

于 2012-06-01T09:04:48.500 に答える