小编Pra*_*ect的帖子

循环中的并发与循环

我一直在阅读关于Swing中的Java Concurrency,并且无法找到适合我情况的答案.

目标:让我的swing应用程序同时运行while循环,直到程序/应用程序退出.

问题:程序冻结(正如我之前预期的那样)并且无法使用.

尝试 - 解决方案:我试图在另一个线程上启动while循环,启动它,仍然没有.

码:

package stakeme;

import java.io.IOException;

import javax.swing.SwingUtilities;

public class StakeMeServer {

    private static ServerSocket socket;

    public static Thread t;


    public static void main(String[] args) throws IOException {


        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                new ConsoleGUI("Server", 800, 400, false);
            }

        });

        Thread t = new Thread(() -> {
            System.out.println("1");
            while (online) {
                System.out.println("2");
            }
        });
        t.setName("GameServer");
        t.start();
    }

}
Run Code Online (Sandbox Code Playgroud)



更新:通过使用SwingWorker类在后台执行我的while循环,我几乎可以做我需要做的事情.

码:

package stakeme;

import java.io.IOException;
import …
Run Code Online (Sandbox Code Playgroud)

java concurrency swing swingworker event-dispatch-thread

1
推荐指数
1
解决办法
1143
查看次数