java - GUI 中的线程 (Swing) - 应用程序解冻

标签 java multithreading user-interface swing

我对 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/

相关文章:

java - 哪个会导致cpu 99%ni?

java - 显示 JWindow 一段时间

ios - 在键盘出现之前获取键盘高度?

mysql - 是否有具有查询生成器功能的 MYSQL GUI 工具?

java - Spring 安全 : Cannot determine value type from string 'admin'

android - 在两个并行运行的线程完成时启动一个事件

Java containsKey() 不起作用

c++ - 在 Qt 上添加小部件并将它们排列到屏幕的一角

java - ElasticSearch 服务无法在 Windows 上启动

java - 如何在我的 Android 应用程序中添加对 Android 4.4 的支持