java – SwingWorker无法按预期工作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – SwingWorker无法按预期工作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1188字,纯文字阅读大概需要2分钟。
内容图文
![java – SwingWorker无法按预期工作](/upload/InfoBanner/zyjiaocheng/807/d32da6627f8444a99108ddc4245a127f.jpg)
我试图找到SwingWorker execute()与doInBackground()之间的差异.所以我编写了这个简单的程序来测试差异.
public static void main(String[] args) {
// TODO code application logic here
for(int i=0;i<10;i++){
try {
new Worker().execute();
} catch (Exception ex) {
Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
public static class Worker extends SwingWorker<Void,Void>{
@Override
protected Void doInBackground() throws Exception {
System.out.println("Hello");
return null;
}
}
当我运行这个程序时,我得到以下异常:
Exception in thread "AWT-Windows" java.lang.IllegalStateException: Shutdown in progress
at java.lang.ApplicationShutdownHooks.add(ApplicationShutdownHooks.java:39)
at java.lang.Runtime.addShutdownHook(Runtime.java:192)
at sun.awt.windows.WToolkit.run(WToolkit.java:281)
at java.lang.Thread.run(Thread.java:619)
但是,当我尝试使用doInBackground()时
new Worker().doInBackground();
程序工作并打印预期的结果.那么我的错误是什么?我应该使用doInBackground()方法,因为我已经读过它不应该使用它.
谢谢
解决方法:
在当前线程上调用execute()方法.它安排SwingWorker在工作线程上执行并立即返回.在您的情况下,主线程在计划的工作线程有机会执行doInBackground()方法之前退出.您可以等待SwingWorker使用get()方法完成.
内容总结
以上是互联网集市为您收集整理的java – SwingWorker无法按预期工作全部内容,希望文章能够帮你解决java – SwingWorker无法按预期工作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。