Browse Source

REPORT-141296 设计器UI操作性能优化

fbp/feature
Richard.Fang 3 weeks ago
parent
commit
e4f175b3d0
  1. 12
      designer-base/src/main/java/com/fr/design/ui/util/UIUtil.java

12
designer-base/src/main/java/com/fr/design/ui/util/UIUtil.java

@ -122,12 +122,20 @@ public class UIUtil {
} }
/** /**
* 异步加载配置并更新UI * 异步加载多个配置并更新UI每个配置加载的时间通常较短约几十毫秒
* *
* @param <T> 配置对象的类型 * @param <T> 配置对象的类型
* @param configLoaders 配置加载器列表每个加载器负责加载一种配置 * @param configLoaders 配置加载器列表每个加载器负责加载一种配置
* @param uiUpdaters UI 更新器列表每个更新器负责在 UI 上显示对应配置的值 * @param uiUpdaters UI 更新器列表每个更新器负责在 UI 上显示对应配置的值
* 加载的过程是异步的UI更新会在任务完成后执行配置加载是顺序进行的即一个配置加载完成后才会加载下一个配置 *
* <p>
* 加载过程是异步的配置加载是顺序进行的即一个配置加载完成后才会加载下一个配置
* 配置加载任务会在后台线程中顺序执行所有配置加载完成后UI更新操作才会依次执行
* <p>
* 异常模式
* - 如果在加载某个配置时发生异常整个任务会失败后续的配置加载将不会继续执行
* - 异常会被捕获为 `ExecutionException` `InterruptedException`并在 `done()` 方法中记录日志
* - 配置加载过程中出现的错误会导致UI更新操作被跳过
*/ */
public static <T> void loadConfigsAndUpdateUI(List<Supplier<T>> configLoaders, List<Consumer<T>> uiUpdaters) { public static <T> void loadConfigsAndUpdateUI(List<Supplier<T>> configLoaders, List<Consumer<T>> uiUpdaters) {
new SwingWorker<List<T>, Void>() { new SwingWorker<List<T>, Void>() {

Loading…
Cancel
Save