2011-09-06 3 views
6

私はJava Swingを初めて使用しています。私の質問はイベントキューとディスパッチスレッドに関連しています。複数のイベントディスパッチスレッド

私は、それぞれAppContextインスタンスごとに複数のイベントキューを持つことが可能だと読んでいます。同様に、各AppContextイベントキューに独自のイベントディスパッチスレッドがあることを意味します。

+2

についての基本的なもの、invokeLater()にラップする必要がありますか? –

+0

@Gnon私の意図は、ディスパッチスレッドが1つだけ存在して複数のイベントキューを処理するとどうなるかを知ることでした。 – Poorna

+1

これを読んだ場所へのリンクを提供できれば助かります。 :) –

答えて

3

私が知っている限り、1つのイベントディスパッチスレッドしか持つことができません。

明らかにAppContext is not meant to be used by developersですが、私はそれに精通していません。

+1

+1アプレットコンテナのようです。 – trashgod

+1

私は、通常、別のスレッドグループに割り当てられた各AppContextに独自のEDTを持っていると間接的に言う独自のキューを持っていることに気づきました – Poorna

+0

2つのAppContextを同じJVM上で実行すると、目的はプログラムを完全に分離します。 –

1

1)基本的に、あなたは、あなたのコードは、すべての変更は)EDT上で行う必要があります(EDT上で行われる場合は、いずれかの疑問を持っている場合

2)、それをテストすることが可能である、知る必要

if (EventQueue.isDispatchThread()) { 

か(それは同じだとEDT上にある場合はtrueを返します)

if (SwingUtilities.isEventDispatchThread()) { 

よりhereまたはhere

3)バックグラウンドタスクからのすべての出力を使用すると、複数のEDTsをしたいと思うか、これは理論的である理由があるConcurency in Swing