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) 和 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 |
返回 |
| IsTerminated |
如果所有任务在关闭后都已完成,则返回 |
| JniIdentityHashCode |
返回包装实例的值 |
| JniManagedPeerState |
托管对等方的状态。 (继承自 IJavaPeerable) |
| JniObjectReferenceControlBlock |
可以 |
| JniPeerMembers |
成员访问和调用支持。 (继承自 IJavaPeerable) |
| PeerReference |
返回JniObjectReference包装的Java对象实例。 (继承自 IJavaPeerable) |
方法
| 名称 | 说明 |
|---|---|
| AwaitTermination(Int64, TimeUnit) |
阻止,直到所有任务在关闭请求后完成执行,或者超时发生,或者当前线程中断,以先发生。 (继承自 IExecutorService) |
| Close() |
启动有序关闭,在该关闭中执行以前提交的任务,但不会接受任何新任务。 (继承自 IExecutorService) |
| Disposed() |
在释放实例时调用。 (继承自 IJavaPeerable) |
| DisposeUnlessReferenced() |
如果没有对此实例的未完成引用,则调用 |
| 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) |
提交一个定期操作,该操作先在给定的初始延迟后启用,然后提交给定时间段;也就是说,执行将在之后 |
| ScheduleWithFixedDelay(IRunnable, Int64, Int64, TimeUnit) |
提交一个定期操作,该操作在给定的初始延迟后首先启用,随后在终止一次执行和下一次执行开始之间的给定延迟。 |
| SetJniIdentityHashCode(Int32) |
设置由 |
| SetJniManagedPeerState(JniManagedPeerStates) |
可以 |
| SetPeerReference(JniObjectReference) |
设置由 |
| 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) |
可以 |
| GetJniTypeName(IJavaPeerable) |
获取实例 |
| InvokeAnyAsync(IExecutorService, ICollection, Int64, TimeUnit) |
可以 |
| InvokeAnyAsync(IExecutorService, ICollection) |
可以 |
| JavaAs<TResult>(IJavaPeerable) |
尝试强制 |
| JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
| JavaCast<TResult>(IJavaObject) |
可以 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
尝试强制 |