语言

IScheduledExecutorService 接口

定义

可以 ExecutorService 计划命令在给定延迟后运行,或定期执行。

[Android.Runtime.Register("java/util/concurrent/ScheduledExecutorService", "", "Java.Util.Concurrent.IScheduledExecutorServiceInvoker")]
public interface IScheduledExecutorService : IDisposable, Java.Interop.IJavaPeerable, Java.Util.Concurrent.IExecutorService
[<Android.Runtime.Register("java/util/concurrent/ScheduledExecutorService", "", "Java.Util.Concurrent.IScheduledExecutorServiceInvoker")>]
type IScheduledExecutorService = interface
    interface IExecutorService
    interface IExecutor
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
派生
属性
实现

注解

可以 ExecutorService 计划命令在给定延迟后运行,或定期执行。

这些 schedule 方法创建具有各种延迟的任务,并返回可用于取消或检查执行的任务对象。 这些 scheduleAtFixedRate 和 scheduleWithFixedDelay 方法创建和执行定期运行的任务,直到取消为止。

使用 Executor#execute(Runnable) 和 ExecutorServicesubmit 方法提交的命令按请求的延迟为零进行计划。 方法中 schedule 也允许零和负延迟(但不允许句点),并被视为立即执行的请求。

所有 schedule 方法都接受 <em>relative</em> 延迟和句点作为参数,而不是绝对时间或日期。 转换以 java.util.Date 所需形式表示的绝对时间是一个简单的问题。 例如,若要在特定将来date进行计划,可以使用: schedule(task, date.getTime() - System.currentTimeMillis(), TimeUnit.MILLISECONDS) 但请注意,相对延迟的过期与由于网络时间同步协议、时钟偏移或其他因素而启用任务的当前 Date 时间不一致。

该 Executors 类为此包中提供的 ScheduledExecutorService 实现提供了方便的工厂方法。

<h2>用法示例</h2>

下面是一个类,该方法设置 ScheduledExecutorService,每 10 秒一小时蜂鸣一次:

{@code
            import static java.util.concurrent.TimeUnit.*;
            class BeeperControl {
              private final ScheduledExecutorService scheduler =
                Executors.newScheduledThreadPool(1);

              public void beepForAnHour() {
                Runnable beeper = () -> System.out.println("beep");
                ScheduledFuture<?> beeperHandle =
                  scheduler.scheduleAtFixedRate(beeper, 10, 10, SECONDS);
                Runnable canceller = () -> beeperHandle.cancel(false);
                scheduler.schedule(canceller, 1, HOURS);
              }
            }}

在 1.5 中添加。

Java文档java.util.concurrent.ScheduledExecutorService。

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

属性

名称 说明
Handle

获取基础 Android 对象的 JNI 值。

(继承自 IJavaObject)
IsShutdown

返回 true 此执行程序是否已关闭。

(继承自 IExecutorService)
IsTerminated

如果所有任务在关闭后都已完成,则返回 true 。

(继承自 IExecutorService)
JniIdentityHashCode

返回包装实例的值 java.lang.System.identityHashCode() 。

(继承自 IJavaPeerable)
JniManagedPeerState

托管对等方的状态。

(继承自 IJavaPeerable)
JniObjectReferenceControlBlock

可以 ExecutorService 计划命令在给定延迟后运行,或定期执行。

(继承自 IJavaPeerable)
JniPeerMembers

成员访问和调用支持。

(继承自 IJavaPeerable)
PeerReference

返回JniObjectReference包装的Java对象实例。

(继承自 IJavaPeerable)

方法

名称 说明
AwaitTermination(Int64, TimeUnit)

阻止,直到所有任务在关闭请求后完成执行,或者超时发生,或者当前线程中断,以先发生。

(继承自 IExecutorService)
Close()

启动有序关闭,在该关闭中执行以前提交的任务,但不会接受任何新任务。

(继承自 IExecutorService)
Disposed()

在释放实例时调用。

(继承自 IJavaPeerable)
DisposeUnlessReferenced()

如果没有对此实例的未完成引用,则调用 Dispose();否则不执行任何操作。

(继承自 IJavaPeerable)
Execute(IRunnable)

在将来的某个时间执行给定的命令。

(继承自 IExecutor)
Finalized()

在实例完成时调用。

(继承自 IJavaPeerable)
InvokeAll(ICollection, Int64, TimeUnit)

执行给定的任务,返回所有完成或超时到期时保留其状态和结果的期货列表,以先发生的情况为准。

(继承自 IExecutorService)
InvokeAll(ICollection)

执行给定的任务,返回所有完成后保留其状态和结果的期货列表。

(继承自 IExecutorService)
InvokeAny(ICollection, Int64, TimeUnit)

执行给定的任务,返回一个成功完成的结果(i.

(继承自 IExecutorService)
InvokeAny(ICollection)

执行给定的任务,返回一个成功完成的结果(i.

(继承自 IExecutorService)
Schedule(ICallable, Int64, TimeUnit)

提交一个值返回的一次性任务,该任务在给定延迟后启用。

Schedule(IRunnable, Int64, TimeUnit)

提交在给定延迟后启用的一次性任务。

ScheduleAtFixedRate(IRunnable, Int64, Int64, TimeUnit)

提交一个定期操作,该操作先在给定的初始延迟后启用,然后提交给定时间段;也就是说,执行将在之后 initialDelay开始,然后 initialDelay + period,然后 initialDelay + 2 * period,等等。

ScheduleWithFixedDelay(IRunnable, Int64, Int64, TimeUnit)

提交一个定期操作,该操作在给定的初始延迟后首先启用,随后在终止一次执行和下一次执行开始之间的给定延迟。

SetJniIdentityHashCode(Int32)

设置由 JniIdentityHashCode. 返回的值。

(继承自 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

可以 ExecutorService 计划命令在给定延迟后运行,或定期执行。

(继承自 IJavaPeerable)
SetPeerReference(JniObjectReference)

设置由 PeerReference. 返回的值。

(继承自 IJavaPeerable)
Shutdown()

启动有序关闭,在该关闭中执行以前提交的任务,但不会接受任何新任务。

(继承自 IExecutorService)
ShutdownNow()

尝试停止所有主动执行的任务,停止正在等待的任务的处理,并返回等待执行的任务的列表。

(继承自 IExecutorService)
Submit(ICallable)

提交值返回任务以供执行,并返回一个“未来”,表示任务的挂起结果。

(继承自 IExecutorService)
Submit(IRunnable, Object)

提交可运行的任务以供执行,并返回表示该任务的 Future。

(继承自 IExecutorService)
Submit(IRunnable)

提交可运行的任务以供执行,并返回表示该任务的 Future。

(继承自 IExecutorService)
UnregisterFromRuntime()

取消注册此实例,使运行时不会从将来 Java.Interop.JniRuntime+JniValueManager.PeekValue 的调用中返回它。

(继承自 IJavaPeerable)

扩展方法

名称 说明
AwaitTerminationAsync(IExecutorService, Int64, TimeUnit)

可以 ExecutorService 计划命令在给定延迟后运行,或定期执行。

GetJniTypeName(IJavaPeerable)

获取实例 self类型的 JNI 名称。

InvokeAnyAsync(IExecutorService, ICollection, Int64, TimeUnit)

可以 ExecutorService 计划命令在给定延迟后运行,或定期执行。

InvokeAnyAsync(IExecutorService, ICollection)

可以 ExecutorService 计划命令在给定延迟后运行,或定期执行。

JavaAs<TResult>(IJavaPeerable)

尝试强制self键入TResult,检查强制是否在Java端有效。

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

可以 ExecutorService 计划命令在给定延迟后运行,或定期执行。

TryJavaCast<TResult>(IJavaPeerable, TResult)

尝试强制self键入TResult,检查强制是否在Java端有效。

适用于