ScheduledThreadPoolExecutor 类

定义

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

[Android.Runtime.Register("java/util/concurrent/ScheduledThreadPoolExecutor", DoNotGenerateAcw=true)]
public class ScheduledThreadPoolExecutor : Java.Util.Concurrent.ThreadPoolExecutor, IDisposable, Java.Interop.IJavaPeerable, Java.Util.Concurrent.IScheduledExecutorService
[<Android.Runtime.Register("java/util/concurrent/ScheduledThreadPoolExecutor", DoNotGenerateAcw=true)>]
type ScheduledThreadPoolExecutor = class
    inherit ThreadPoolExecutor
    interface IScheduledExecutorService
    interface IExecutorService
    interface IExecutor
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
继承
属性
实现

注解

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。 此类最好是 java.util.Timer 需要多个工作线程,或者当需要额外灵活性或功能 ThreadPoolExecutor (此类扩展)时。

延迟的任务的执行时间不会早于启用,但不会有任何实时保证,即启用后,它们将启动。 在提交的第一次出(FIFO)顺序中启用了完全相同的执行时间计划的任务。

在运行提交的任务之前取消时,将取消执行。 默认情况下,此类取消的任务不会自动从工作队列中删除,直到其延迟过后。 虽然这可以实现进一步的检查和监视,但它也可能导致取消任务的无限保留。

通过 #scheduleAtFixedRate scheduleAtFixedRate 计划或 #scheduleWithFixedDelay scheduleWithFixedDelay 不重叠的定期任务的连续执行。 虽然不同的执行可能由不同的线程执行,但以前的执行<效果发生在之前></i>,而后续执行的效果。

虽然此类继承自 ThreadPoolExecutor,但一些继承的优化方法对它没有用处。 具体而言,因为它充当使用 corePoolSize 线程和未绑定队列的固定大小的池,因此 maximumPoolSize 调整不会产生任何有用的效果。 此外,设置为零或使用allowCoreThreadTimeOut几乎从来不是个好主意corePoolSize,因为这可能会导致池中没有线程来处理任务,一旦它们有资格运行。

与 一 ThreadPoolExecutor样,如果未指定,则此类用作 Executors#defaultThreadFactory 默认线程工厂,并 ThreadPoolExecutor.AbortPolicy 用作默认拒绝的执行处理程序。

<b>扩展说明:</b> 此类重写ThreadPoolExecutor#execute(Runnable) executeAbstractExecutorService#submit(Runnable) submit生成内部对象以控制每个任务延迟和计划的方法ScheduledFuture。 若要保留功能,子类中对这些方法的任何进一步重写都必须调用超级类版本,从而有效地禁用其他任务自定义。 但是,此类提供替代的受保护扩展方法decorateTask(每个版本各RunnableCallable一个版本),可用于自定义用于执行通过executesubmitschedulescheduleAtFixedRatescheduleWithFixedDelay输入的命令的具体任务类型。 默认情况下,使用 ScheduledThreadPoolExecutor 任务类型扩展 FutureTask。 但是,可以使用窗体的子类来修改或替换此项:

{@code
            public class CustomScheduledExecutor extends ScheduledThreadPoolExecutor {

              static class CustomTask<V> implements RunnableScheduledFuture<V> { ... }

              protected <V> RunnableScheduledFuture<V> decorateTask(
                           Runnable r, RunnableScheduledFuture<V> task) {
                  return new CustomTask<V>(r, task);
              }

              protected <V> RunnableScheduledFuture<V> decorateTask(
                           Callable<V> c, RunnableScheduledFuture<V> task) {
                  return new CustomTask<V>(c, task);
              }
              // ... add constructors, etc.
            }}

在 1.5 中添加。

适用于 . 的 java.util.concurrent.ScheduledThreadPoolExecutorJava 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

构造函数

ScheduledThreadPoolExecutor(Int32)

ScheduledThreadPoolExecutor使用给定的核心池大小创建新的池。

ScheduledThreadPoolExecutor(Int32, IRejectedExecutionHandler)

ScheduledThreadPoolExecutor使用给定的初始参数创建新的参数。

ScheduledThreadPoolExecutor(Int32, IThreadFactory)

ScheduledThreadPoolExecutor使用给定的初始参数创建新的参数。

ScheduledThreadPoolExecutor(Int32, IThreadFactory, IRejectedExecutionHandler)

ScheduledThreadPoolExecutor使用给定的初始参数创建新的参数。

ScheduledThreadPoolExecutor(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

属性

ActiveCount

返回正在主动执行任务的大致线程数。

(继承自 ThreadPoolExecutor)
Class

返回此 Object的运行时类。

(继承自 Object)
CompletedTaskCount

返回已完成执行的任务的大致总数。

(继承自 ThreadPoolExecutor)
ContinueExistingPeriodicTasksAfterShutdownPolicy

获取有关是否继续执行现有定期任务的策略,即使此执行程序已 shutdown执行。 - 或 - 设置策略,确定是否继续执行现有定期任务,即使此执行程序已 shutdown执行。

CorePoolSize

返回线程的核心数。 - 或 - 设置线程的核心数。

(继承自 ThreadPoolExecutor)
ExecuteExistingDelayedTasksAfterShutdownPolicy

获取有关是否执行现有延迟任务的策略,即使此执行程序已 shutdown执行。 - 或 - 设置是否执行现有延迟任务的策略,即使此执行程序已 shutdown执行。

Handle

基础 Android 实例的句柄。

(继承自 Object)
IsShutdown

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 ThreadPoolExecutor)
IsTerminated

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 ThreadPoolExecutor)
IsTerminating

如果此执行程序正在终止或#shutdown#shutdownNow尚未完全终止,则返回 true。

(继承自 ThreadPoolExecutor)
JniIdentityHashCode

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 Object)
JniPeerMembers

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

LargestPoolSize

返回同时在池中的最大线程数。

(继承自 ThreadPoolExecutor)
MaximumPoolSize

返回允许的最大线程数。 - 或 - 设置允许的最大线程数。

(继承自 ThreadPoolExecutor)
PeerReference

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 Object)
PoolSize

返回池中的当前线程数。

(继承自 ThreadPoolExecutor)
Queue

返回此执行程序使用的任务队列。

(继承自 ThreadPoolExecutor)
RejectedExecutionHandler

返回不可执行任务的当前处理程序。 - 或 - 为不可执行的任务设置新的处理程序。

(继承自 ThreadPoolExecutor)
RemoveOnCancelPolicy

获取取消时是否应立即从工作队列中删除已取消的任务的策略。 - 或 - 设置在取消时是否应立即从工作队列中删除已取消的任务的策略。

TaskCount

返回已计划执行的任务的大致总数。

(继承自 ThreadPoolExecutor)
ThreadFactory

返回用于创建新线程的线程工厂。 - 或 - 设置用于创建新线程的线程工厂。

(继承自 ThreadPoolExecutor)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

方法

AfterExecute(IRunnable, Throwable)

在给定 Runnable 执行完成后调用的方法。

(继承自 ThreadPoolExecutor)
AllowCoreThreadTimeOut(Boolean)

设置一个策略,用于控制核心线程在保持活动时间内是否可能超时和终止,如果需要,当新任务到达时,将替换这些任务。

(继承自 ThreadPoolExecutor)
AllowsCoreThreadTimeOut()

如果此池允许核心线程超时,并在 keepAlive 时间内没有任务到达,则返回 true,如果新任务到达时需要替换。

(继承自 ThreadPoolExecutor)
AwaitTermination(Int64, TimeUnit)

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 ThreadPoolExecutor)
AwaitTerminationAsync(Int64, TimeUnit)

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 AbstractExecutorService)
BeforeExecute(Thread, IRunnable)

在给定线程中执行给定的 Runnable 之前调用的方法。

(继承自 ThreadPoolExecutor)
Clone()

创建并返回此对象的副本。

(继承自 Object)
DecorateTask(ICallable, IRunnableScheduledFuture)

修改或替换用于执行可调用项的任务。

DecorateTask(IRunnable, IRunnableScheduledFuture)

修改或替换用于执行可运行的任务。

Dispose()

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 Object)
Dispose(Boolean)

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 Object)
Equals(Object)

指示其他对象是否“等于”此对象。

(继承自 Object)
Execute(IRunnable)

在将来某个时候执行给定的任务。

(继承自 ThreadPoolExecutor)
GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
GetKeepAliveTime(TimeUnit)

返回线程保持活动时间,即线程在终止之前可能保持空闲的时间量。

(继承自 ThreadPoolExecutor)
InvokeAll(ICollection)

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

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

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 AbstractExecutorService)
InvokeAny(ICollection)

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

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

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 AbstractExecutorService)
JavaFinalize()

当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。

(继承自 Object)
NewTaskFor(ICallable)

返回 RunnableFuture 给定的可调用任务。

(继承自 AbstractExecutorService)
NewTaskFor(IRunnable, Object)

返回 RunnableFuture 给定的可运行值和默认值。

(继承自 AbstractExecutorService)
Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
PrestartAllCoreThreads()

启动所有核心线程,导致它们完全等待工作。

(继承自 ThreadPoolExecutor)
PrestartCoreThread()

启动一个核心线程,导致它等待工作。

(继承自 ThreadPoolExecutor)
Purge()

尝试从工作队列 Future 中删除所有已取消的任务。

(继承自 ThreadPoolExecutor)
Remove(IRunnable)

如果存在该任务,则从执行程序的内部队列中删除此任务,因此,如果尚未启动,则不会运行该任务。

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

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

Schedule(IRunnable, Int64, TimeUnit)

创建并执行在给定延迟后启用的一次性操作。

ScheduleAtFixedRate(IRunnable, Int64, Int64, TimeUnit)

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

ScheduleWithFixedDelay(IRunnable, Int64, Int64, TimeUnit)

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

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
SetKeepAliveTime(Int64, TimeUnit)

设置线程保持活动时间,即线程在终止之前可能保持空闲的时间量。

(继承自 ThreadPoolExecutor)
Shutdown()

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

(继承自 ThreadPoolExecutor)
ShutdownNow()

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

(继承自 ThreadPoolExecutor)
Submit(ICallable)

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 AbstractExecutorService)
Submit(IRunnable)

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

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

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 AbstractExecutorService)
Terminated()

执行程序终止时调用的方法。

(继承自 ThreadPoolExecutor)
ToArray<T>()

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 Object)
Wait()

使当前线程等待,直到唤醒它,通常是通过 em 通知/em> 或 <em>interrupted</em>。<><

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。

(继承自 Object)

显式接口实现

IJavaPeerable.Disposed()

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 Object)
IJavaPeerable.Finalized()

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

GetJniTypeName(IJavaPeerable)

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

AwaitTerminationAsync(IExecutorService, Int64, TimeUnit)

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

InvokeAnyAsync(IExecutorService, ICollection)

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

InvokeAnyAsync(IExecutorService, ICollection, Int64, TimeUnit)

可以 ThreadPoolExecutor 额外计划命令,以在给定的延迟后运行,或定期执行。

适用于