我为IMAPFolder设置了MessageCountListener。为了不断获得更新,我必须执行以下操作,这对于我的应用程序性能明智而言是一个杀手。它会冻结GUI,因为它正在为每个文件夹运行。
while (true) {
try {
if (folder != null && folder.isOpen()) {
folder.idle();
} else {
getSyncListenersAttachedFolders().remove(syncFolder.getFolderID());
}
} catch (Exception ex) {
errorLOG.error("IDLE command issue exception.");
getSyncListenersAttachedFolders().remove(syncFolder.getFolderID());
}
}
有没有更好的方法来发出不会在while(true)条件下运行的空闲命令。 期待快速反应。提前谢谢。
答案 0 :(得分:1)
您需要在自己的线程中运行它。