Browse Source

REPORT-69776 切换在线组件的排序,会加载很久

【问题原因】
使用了固定容量阻塞列表,导致资源加载阻塞

【改动思路】
使用LinkedBlockingQueue

【review建议】
bugfix/11.0
Starryi 3 years ago
parent
commit
d51c466533
  1. 10
      designer-form/src/main/java/com/fr/design/mainframe/share/ui/online/resource/OnlineResourceManager.java

10
designer-form/src/main/java/com/fr/design/mainframe/share/ui/online/resource/OnlineResourceManager.java

@ -1,8 +1,8 @@
package com.fr.design.mainframe.share.ui.online.resource; package com.fr.design.mainframe.share.ui.online.resource;
import javax.swing.SwingWorker; import javax.swing.SwingWorker;
import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.BlockingQueue; import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.function.Predicate; import java.util.function.Predicate;
/** /**
@ -24,7 +24,7 @@ public class OnlineResourceManager {
private SwingWorker<Boolean, Void> swingWorker; private SwingWorker<Boolean, Void> swingWorker;
private final BlockingQueue<ResourceLoader> loaderBlockingQueue = new ArrayBlockingQueue<ResourceLoader>(100); private final BlockingQueue<ResourceLoader> loaderBlockingQueue = new LinkedBlockingQueue<>();
public void cancelLoad(Object key) { public void cancelLoad(Object key) {
if (swingWorker != null) { if (swingWorker != null) {
@ -39,11 +39,7 @@ public class OnlineResourceManager {
} }
public void addLoader(ResourceLoader loader) { public void addLoader(ResourceLoader loader) {
try { this.loaderBlockingQueue.add(loader);
this.loaderBlockingQueue.put(loader);
} catch (InterruptedException e) {
e.printStackTrace();
}
} }
public void loadImage() { public void loadImage() {

Loading…
Cancel
Save