2011-07-27 5 views
6

私は、複数のスレッドがそれぞれGUIの進行状況バーを使って進行中のユーザを更新するEclipse RCPアプリケーションを作成しています。私は、それぞれが独自の進捗バーを個別に更新できるようにすることは、共有リソース(Shellのようなプログレスバーの親の1つ)上で競合を引き起こす可能性があると言われています。これは本当ですか?GUIを妨害することなく、複数のスレッドに複数のプログレスバーを使用する

私はスレッドからの更新呼び出しのためのシリアライズファネルとして機能する同期メソッドを持つ中間クラスを作成したことを私に示唆しました。これは解決策ですか?より良いソリューションを提供できますか?

+1

@Moonbeam、そのないスイングについて、そのEclipseベースのRCPについてで更新コードを囲みます。それに対応するものはEclipse-Job-Framework –

答えて

2

実際はかなり簡単です。あなたがいずれかのスレッドからプログレスバーを更新する必要があるたび、あなたは

display.asyncExec(new Runnable() { .... }); 
+0

と呼ばれています。これははるかに簡単なアプローチであり、コードを読んでSWTをよく知っている人にとっては意味があります。 +1して受け入れる –