From 1dca47ba9190c188ea0005336168e747273bc613 Mon Sep 17 00:00:00 2001 From: TonyJiangWJ Date: Tue, 7 Dec 2021 22:40:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=84=9A=E6=9C=AC=E9=80=9A?= =?UTF-8?q?=E4=BF=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tony/autojs/common/ImagesResolver.java | 1 - .../autojs/common/ProcessMappedShare.java | 30 ++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/autojs-tool-common/src/main/java/com/tony/autojs/common/ImagesResolver.java b/autojs-tool-common/src/main/java/com/tony/autojs/common/ImagesResolver.java index 7f3579fa..581cf7d5 100644 --- a/autojs-tool-common/src/main/java/com/tony/autojs/common/ImagesResolver.java +++ b/autojs-tool-common/src/main/java/com/tony/autojs/common/ImagesResolver.java @@ -1,7 +1,6 @@ package com.tony.autojs.common; import com.stardust.autojs.core.image.capture.ScreenCapturer; -import com.stardust.autojs.core.util.ScriptPromiseAdapter; import com.stardust.autojs.runtime.ScriptRuntime; import com.stardust.autojs.runtime.api.Images; diff --git a/autojs-tool-common/src/main/java/com/tony/autojs/common/ProcessMappedShare.java b/autojs-tool-common/src/main/java/com/tony/autojs/common/ProcessMappedShare.java index 963cce7e..7ae1b77e 100644 --- a/autojs-tool-common/src/main/java/com/tony/autojs/common/ProcessMappedShare.java +++ b/autojs-tool-common/src/main/java/com/tony/autojs/common/ProcessMappedShare.java @@ -24,6 +24,7 @@ public class ProcessMappedShare { private final RandomAccessFile randomAccessFile; private boolean loop; private long timeout; + private long interval; private volatile boolean subscribing; private volatile boolean unsubscribe; private Object threads; @@ -50,6 +51,7 @@ public class ProcessMappedShare { } this.isSubscriber = isSubscriber; timeout = 60; + interval = 1000; threads = scriptRuntime.threads; } @@ -93,6 +95,13 @@ public class ProcessMappedShare { subscribing = false; return; } + try { + synchronized (this) { + wait(interval); + } + } catch (InterruptedException e) { + // e.printStackTrace(); + } } int index = 1; byte read = mbb.get(index++); @@ -117,7 +126,9 @@ public class ProcessMappedShare { int count = 0; while (count++ < timeout && subscribing) { try { - Thread.sleep(1000); + synchronized (this) { + this.wait(1000); + } } catch (Exception e) { // } @@ -165,6 +176,23 @@ public class ProcessMappedShare { return this; } + /** + * 设置文件监听的间隔时间 默认1000ms + * + * @param interval + * @return + */ + public ProcessMappedShare setInterval(long interval) { + if (!isSubscriber) { + throw new IllegalStateException("只有订阅模式可以设置当前配置"); + } + if (interval <= 0) { + interval = 1000; + } + this.interval = interval; + return this; + } + /** * 设置最长订阅时间 循环模式无限制时长 *