Eclipseのバックグラウンド処理を使用しているプラグインプロジェクトに取り組んでいます。DisplayクラスのsyncExec()メソッドとasyncExec ()メソッドの
違いは何ですか?それらはどのような状況に当てはまりますか?任意の例が役立つ可能性があります。
質問する
12445 次
3 に答える
17
Q: 「org.eclipse.swt.SWTException: Invalid thread access」というエラーが表示されるのはなぜですか?
バックグラウンド スレッドが UI スレッドに属するオブジェクトに対して操作を実行できるようにするには、Display のメソッド syncExec(Runnable runnable) および asyncExec(Runnable runnable) を使用します。これらは、任意のスレッドから呼び出すことができる SWT の唯一のメソッドです。UI スレッドがランナブルを実行できるようにするため、バックグラウンド スレッドがランナブルの終了を同期的に待機するようにするか、非同期的にバックグラウンド スレッドが結果を待たずに実行を継続できるようにします。syncExec() を使用して実行される実行可能ファイルは、同等の UI 操作への直接呼び出しと最もよく一致します。Java メソッド呼び出しは、syncExec() と同様に、続行する前に常に結果を待機するためです。
于 2012-06-19T11:46:44.517 に答える