4

EDT で実行されているメソッドがあり、その中で新しい (EDT 以外の) スレッドで何かを実行させたいと考えています。私の現在のコードは次のとおりです。

@Override
    public void actionPerformed(ActionEvent arg0) {
//gathering parameters from GUI

//below code I want to run in new Thread and then kill this thread/(close the JFrame)
new GameInitializer(userName, player, Constants.BLIND_STRUCTURE_FILES.get(blindStructure), handState);
}
4

2 に答える 2

8

を使用SwingWorkerして、EDT から離れたワーカー スレッドでタスクを実行できます。

例えば

class BackgroundTask extends SwingWorker<String, Object> {
    @Override
    public String doInBackground() {
        return someTimeConsumingMethod();
    }

    @Override
    protected void done() {
        System.out.println("Done");
    }
}

次に、あなたがそれを呼び出す場所:

(new BackgroundTask()).execute();
于 2010-03-12T22:00:23.767 に答える