gpt4 book ai didi

java - 等待 SwingWorker 完成

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:26:09 32 4
gpt4 key购买 nike

我想等待我的 SwingWorker 完成工作,然后我想执行另一个 SwingWorker。在这种情况下,Encrypteer3 是一个扩展 SwingWorker 的类。

我的代码:

    input = txtTekst.getText();
key = txtKey.getText();
System.out.println("thread1 start");
Encrypteer3 a = new Encrypteer3();
a.execute();
while(a.isDone()==false){
// do nothing
}
input = output;
key = txtKey1.getText();
System.out.println("thread2 start");
Encrypteer3 b = new Encrypteer3();
b.execute();
while(b.isDone()==false){
// do nothing
}

这会使我的 GUI 卡住并使用大量 CPU(执行此操作时,java 使用了大约 95% 的 CPU)。我认为问题在于它一直在检查线程是否已完成,这就是它如此占用 CPU 的原因。

SwingWorker 类上没有 join() 方法。我怎样才能减少这种 CPU 密集度?

最佳答案

我认为使用空循环是个坏主意,SwingWorker 有

protected  void done()

您可以在其中定义完成时执行的代码,那么如果你想在 SW 之外执行,你可以使用 listerners 和触发 Action

关于java - 等待 SwingWorker 完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8111946/

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