gpt4 book ai didi

带有 Swing UI 的 Java 线程

转载 作者:行者123 更新时间:2023-12-02 14:34:14 26 4
gpt4 key购买 nike

在设置线程来启动 MIDI 音序器时遇到一些麻烦后,我决定简单地将其删除,尽管它会减慢我的 UI 速度,但我将能够正确使用它。

但是我注意到,即使在播放音序器时,UI 也非常活跃,即使播放大约 500 个音符,UI 也运行得非常好。

现在我知道,在 C# 中,如果您正在做一些密集的事情,建议将其加载到新线程上,因为它将释放 UI。 Java中也是这样的原理吗,真是让我困惑。如果是这样,有人可以解释一下用户界面如何不被阻止吗?

谢谢

编辑:

以下代码实际播放序列

public static boolean Play() {
if(!_sequencer.isRunning()) {
try {
_sequencer.setSequence(_sequence);
_sequencer.start();

return true;
} catch (Exception e) {
Logger.Add(e.getMessage());
}
}
return false;
//Already running
}

最佳答案

是的,这是同一个理论。只有事件线程可以修改 UI,因此如果您在该线程上执行任何操作,那么您就会阻止其他事件在 UI 上工作。

将事件线程视为队列可能更容易:

  1. 显示表单
  2. 点击按钮
  3. 做好你的工作(行动)
  4. 重置按钮焦点
  5. 更新进度条
  6. 等等

如果#3 需要很长时间,那么可能意味着您的表单将显示为锁定。显然这完全取决于你对 long 的定义。一般来说,最好在事件线程之外工作而不是在事件线程上工作。

关于带有 Swing UI 的 Java 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5696107/

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