ScheduledThreadPoolExecutor.ScheduleAtFixedRate Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Submits a periodic action that becomes enabled first after the
given initial delay, and subsequently with the given period;
that is, executions will commence after
initialDelay
, then initialDelay + period
, then
initialDelay + 2 * period
, and so on.
[Android.Runtime.Register("scheduleAtFixedRate", "(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;", "GetScheduleAtFixedRate_Ljava_lang_Runnable_JJLjava_util_concurrent_TimeUnit_Handler")]
public virtual Java.Util.Concurrent.IScheduledFuture? ScheduleAtFixedRate(Java.Lang.IRunnable? command, long initialDelay, long period, Java.Util.Concurrent.TimeUnit? unit);
[<Android.Runtime.Register("scheduleAtFixedRate", "(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;", "GetScheduleAtFixedRate_Ljava_lang_Runnable_JJLjava_util_concurrent_TimeUnit_Handler")>]
abstract member ScheduleAtFixedRate : Java.Lang.IRunnable * int64 * int64 * Java.Util.Concurrent.TimeUnit -> Java.Util.Concurrent.IScheduledFuture
override this.ScheduleAtFixedRate : Java.Lang.IRunnable * int64 * int64 * Java.Util.Concurrent.TimeUnit -> Java.Util.Concurrent.IScheduledFuture
Parameters
- command
- IRunnable
the task to execute
- initialDelay
- Int64
the time to delay first execution
- period
- Int64
the period between successive executions
- unit
- TimeUnit
the time unit of the initialDelay and period parameters
Returns
Implements
- Attributes
Exceptions
Remarks
Submits a periodic action that becomes enabled first after the given initial delay, and subsequently with the given period; that is, executions will commence after initialDelay
, then initialDelay + period
, then initialDelay + 2 * period
, and so on.
The sequence of task executions continues indefinitely until one of the following exceptional completions occur: <ul> <li>The task is Future#cancel explicitly cancelled via the returned future. <li>Method #shutdown
is called and the #getContinueExistingPeriodicTasksAfterShutdownPolicy policy on whether to continue after shutdown is not set true, or method #shutdownNow
is called; also resulting in task cancellation. <li>An execution of the task throws an exception. In this case calling Future#get() get
on the returned future will throw ExecutionException
, holding the exception as its cause. </ul> Subsequent executions are suppressed. Subsequent calls to Future#isDone isDone()
on the returned future will return true
.
Since API level 31: If the app is frozen by the Android cached apps freezer before the fixed rate task is done or canceled, the task may run many times immediately when the app unfreezes, just as if a single execution of the command had taken the duration of the frozen period to execute.
Since API level 36: If any execution of this task takes longer than its period, then the subsequent execution will be scheduled for the most recent missed period.
Portions of this page are modifications based on work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.