我正在用 Java 构建一个带有 GUI 的小软件。 我有一个连续运行的算法(几乎 24/7)(我在 GUI 中有一个停止/启动按钮) 该算法应该更新列表并在 GUI 上显示日志。 问题是 - 我应该为此过程(算法)创建一个单独的类或线程, 1) 如果答案是肯定的 - 我是否应该将应更新的 GUI 元素作为参数传输到该过程?更新 GUI 会导致问题吗? 2)如果不是——我应该如何设计它?
非常感谢!
最佳答案
您应该使用繁重的任务 SwingWorker
,它是专为这种情况而设计的。这里有一篇好文章why do we need SwingWorker? 。
你需要这个,因为如果你的算法需要 5 秒,并且你在与 gui 相同的线程中运行,它会卡住你的 View 直到完成。
顺便说一句,所有 gui 组件都必须在事件调度线程
中更新,因此您不必在另一个线程中更新它们,因为它们不会更新。
关于java - 设计问题 - 应该为 GUI 使用单独的线程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17254197/