IScheduledExecutorService 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
一个 , 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)
和 ExecutorService
submit
方法提交的命令,请求的延迟为零。 方法中 schedule
也允许零延迟和负延迟 (但不允许期间) ,并被视为立即执行请求。
所有方法都schedule
接受<>相对<延迟>和周期作为参数,而不是绝对时间或日期。 将表示为 java.util.Date
的绝对时间转换为所需形式是一件简单的事情。 例如,若要在特定的未来 date
进行计划,可以使用: schedule(task, date.getTime() - System.currentTimeMillis(), TimeUnit.MILLISECONDS)
。 但请注意,由于网络时间同步协议、时钟偏移或其他因素,相对延迟的过期时间不必与启用任务的当前 Date
时间一致。
类 Executors
为此包中提供的 ScheduledExecutorService 实现提供了方便的工厂方法。
<h2>用法示例</h2>
下面是一个类,该方法将 ScheduledExecutorService 设置为在一小时内每十秒发出一次蜂鸣声:
{@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.util.concurrent.ScheduledExecutorService
Java 文档。
此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。
属性
Handle |
获取基础 Android 对象的 JNI 值。 (继承自 IJavaObject) |
IsShutdown |
|
IsTerminated |
|
JniIdentityHashCode |
返回包装实例的 的值 |
JniManagedPeerState |
托管对等方的状态。 (继承自 IJavaPeerable) |
JniPeerMembers |
成员访问和调用支持。 (继承自 IJavaPeerable) |
PeerReference |
返回 JniObjectReference 包装的 Java 对象实例的 。 (继承自 IJavaPeerable) |
方法
AwaitTermination(Int64, TimeUnit) |
阻止,直到所有任务在关闭请求后完成执行、超时发生或当前线程中断(以先发生者为准)。 (继承自 IExecutorService) |
Disposed() |
在释放实例时调用。 (继承自 IJavaPeerable) |
DisposeUnlessReferenced() |
如果没有对此实例的未完成引用,则调用 |
Execute(IRunnable) |
在将来的某个时间执行给定的命令。 (继承自 IExecutor) |
Finalized() |
在实例完成时调用。 (继承自 IJavaPeerable) |
InvokeAll(ICollection) |
执行给定的任务,并在所有任务完成时返回保留其状态和结果的 Future 列表。 (继承自 IExecutorService) |
InvokeAll(ICollection, Int64, TimeUnit) |
执行给定任务,在全部完成或超时到期时返回保留其状态和结果的 Future 列表,以先发生者为准。 (继承自 IExecutorService) |
InvokeAny(ICollection) |
执行给定任务,返回已成功完成的任务的结果 (i。 (继承自 IExecutorService) |
InvokeAny(ICollection, Int64, TimeUnit) |
执行给定任务,返回已成功完成的任务的结果 (i。 (继承自 IExecutorService) |
Schedule(ICallable, Int64, TimeUnit) |
提交一个值返回的一次性任务,该任务在给定延迟后启用。 |
Schedule(IRunnable, Int64, TimeUnit) |
提交在给定延迟后启用的一次性任务。 |
ScheduleAtFixedRate(IRunnable, Int64, Int64, TimeUnit) |
提交一个定期操作,该操作在给定的初始延迟后首先启用,随后在给定时间段内启用;也就是说,执行将在 之后 |
ScheduleWithFixedDelay(IRunnable, Int64, Int64, TimeUnit) |
提交一个定期操作,该操作在给定的初始延迟后首先启用,然后在终止一个执行和下一个执行开始之间的给定延迟时启用。 |
SetJniIdentityHashCode(Int32) |
设置 返回 |
SetJniManagedPeerState(JniManagedPeerStates) |
一个 , |
SetPeerReference(JniObjectReference) |
设置 返回 |
Shutdown() |
启动有序关闭,在该关机中执行以前提交的任务,但不接受任何新任务。 (继承自 IExecutorService) |
ShutdownNow() |
尝试停止所有正在执行的任务,停止处理等待的任务,并返回等待执行的任务列表。 (继承自 IExecutorService) |
Submit(ICallable) |
提交值返回任务以供执行,并返回一个 Future,表示任务的挂起结果。 (继承自 IExecutorService) |
Submit(IRunnable) |
提交可运行任务以供执行,并返回表示该任务的 Future。 (继承自 IExecutorService) |
Submit(IRunnable, Object) |
提交可运行任务以供执行,并返回表示该任务的 Future。 (继承自 IExecutorService) |
UnregisterFromRuntime() |
取消注册此实例,以便运行时不会从将来 Java.Interop.JniRuntime+JniValueManager.PeekValue 的调用中返回它。 (继承自 IJavaPeerable) |
扩展方法
JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
JavaCast<TResult>(IJavaObject) |
一个 , |
GetJniTypeName(IJavaPeerable) |
一个 , |
AwaitTerminationAsync(IExecutorService, Int64, TimeUnit) |
一个 , |
InvokeAnyAsync(IExecutorService, ICollection) |
一个 , |
InvokeAnyAsync(IExecutorService, ICollection, Int64, TimeUnit) |
一个 , |