我最近一直在使用相当多的SwingWorkers,并且遇到了一些问题,因此我尝试创建SCSSE,但是显然不希望这样做
static SwingWorker worker;
public static void main(String[] args) {
worker = new SwingWorker<Object, Object>() {
protected Object doInBackground() throws Exception {
return "Hello";
}
protected void done() {
System.out.println("I'm done!");
};
};
System.out.println("working");
try {
System.out.println("result: " + worker.get());
} catch (InterruptedException | ExecutionException e) {
e.printStackTrace();
}
System.out.println("working finished");
}
当执行此命令时,它会打印“正在运行”,然后脚本将继续无限期运行...
您永远不会启动SwingWorker
,因此该worker.get()
方法在等待工作程序完成时会阻塞。
您可以通过添加以下内容进行验证:
System.out.println("waiting for result");
System.out.println("result: " + worker.get());
如果要SwingWorker
执行,则需要调用:
worker.execute()
创建完之后SwingWorker
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句