gpt4 book ai didi

java - SwingWorker,从大型方法调用中发布

转载 作者:行者123 更新时间:2023-12-02 07:35:51 27 4
gpt4 key购买 nike

我有一个 swingworker,我想用它从 doInBackground() swingworker 方法中调用另一个对象的大型且复杂的方法。

看起来像这样:

public class HostGameTask extends SwingWorker<Void, String> {

@Override
protected Void doInBackground() throws Exception {
try {
SwingGUI.poker.StartGame(true,(SwingGUI.numberOfSlots.getSelectedIndex()+1));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}


@Override
protected void process(List<String> messages) {
String latestMessage = messages.get(messages.size()-1);
}
}

StartGame 方法内部有一个 while 循环,等待玩家加入。扑克对象是 SwingGUI 中的一个对象,它具有 HostGameTask 作为嵌套类。

我可以在 StartGame() 函数中发布吗?

最佳答案

是和否。

不,你不能给出你编写代码的方式吗?

是的,如果您将 SwingWorker 的引用传递给 StartGame 方法,就可以。

就个人而言,我会编写一个接口(interface),通过该接口(interface),您的 StartGame 方法可以与工作线程进行通信。这会解耦您的代码并消除对 SwingWorker 的依赖(因为您的 StartGame 方法不应该关心谁消费其内容,而只关心它如何将该信息发送给感兴趣的各方)。

关于java - SwingWorker,从大型方法调用中发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12233682/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com