別の SwingWorker (MainWorker) から SwingWorker (SubWorker) を実行しようとしていますが、SubWorker が完了するまで MainWorker を待機させたいと考えています。それまでの間、MainWorker は SubWorker のプロパティの変更に従って自身を更新する必要があります。
public class MainWorker extends SwingWorker<Void,Void>
{
public Void doInBackground()
{
SubWorker sw = new SubWorker();
sw.execute();
try {
network.get(); // wait for completion
} catch (Exception ex) {
}
return null;
}
}
問題は、MainWorker が SubWorker の終了を待っている間に、MainWorker が終了するまで SubWorker の doInBackground メソッドが呼び出されないことです。
SubWorker を MainWorker のアクティビティと並行して実行するにはどうすればよいですか?