我对 Java Swing 应用程序中的线程有疑问。我的应用程序中有一个模块可以接收和发送电子邮件。我想为按钮 (mouseClicked) 分配一个操作以接收未读的电子邮件。
伪代码:
ExchangeConnector ec = new ExchangeConnector();
ArrayList<Mail> unreadMails = ec.receive(Mail.UNREAD);
// (...)
ec.close();
我当前的实现使应用程序卡住,直到接收完成(有时可能需要 10 分钟以上)。
问题是 - 如何让它完全“在后台运行”,使我的应用程序可用于其他操作?
最佳答案
看看 SwingWorker感谢在 Swing Thread 上做这种事情。
SwingWorker 是:
useful when a time-consuming task has to be performed following a user-interaction event
关于java - GUI 中的线程 (Swing) - 应用程序解冻,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5080561/