invokeLater()
作業単位をAWTEDTに送信するためのシンプルさが気に入っています。バックグラウンドスレッド(SwingWorkerなど)に作業要求を送信するための同様のメカニズムがあると便利ですが、私が理解しているように、これらには、invokeLater()が依存するイベントキューイングおよびディスパッチメカニズムはありません。
その代わりに、他のスレッドがメッセージを送信するブロックキューをバックグラウンドスレッドに与えることになり、スレッドは基本的に受信ループを実行して、メッセージが到着するまでブロックします。
実際、これは、バックグラウンドスレッドでEDTのような動作を実装する方法とまったく同じである可能性があります(またはそうなるでしょうか?)。一方、私はスレッドが単に不活性にぶら下がっていて、空の目に見えないイベントディスパッチキューからディスパッチされたときに「ワークドロップレット」を処理するというシンプルさが好きです。Javaは、そのような「イベント駆動型ワーカースレッド」を作成する方法を提供しますか?それとも、結局のところ、メッセージキューはこれを行う正しい方法ですか?invokeLater()
また、関連して、メッセージパッシングの手法には欠点がありますか?