What's wrong
The README's "Dynamic Interval Adjustment" example (README.md ~L124-140) builds an IntervalActionOptions, starts the action, and then assigns:
options.ActionInterval = TimeSpan.FromSeconds(1);
IntervalActionOptions.ActionInterval is { get; init; } (IntervalAction/IntervalActionOptions.cs:35), so this is compile error CS8852. Even if it compiled, it would have no effect: IntervalAction.Start copies the options into the instance's private init-only ActionInterval (IntervalAction/IntervalAction.cs:61, :147), and Restart()/RestartAsync() never re-read the options.
The README API table also lists IsRunning and Options properties (README.md ~L154-155) that do not exist on IntervalAction.
Why it matters
A user who follows the documented example to speed up or slow down a running action gets a build failure, and there's no public API to achieve the documented behaviour. The only route is Stop() followed by a fresh Start(...), which loses the last-run timestamp and any pending exception state.
Suggested fix / acceptance criteria
Either:
- Add a supported way to change the interval of a running action (e.g.
Restart(IntervalActionOptions) / ChangeInterval(TimeSpan), or a thread-safe settable interval), with a test showing the new interval takes effect from the next tick; and update the README example to use it; or
- Remove the "Dynamic Interval Adjustment" example and the non-existent
IsRunning/Options rows from the README.
Related but distinct: #71 (Dispose), #59 / PR #78 (async actions).
What's wrong
The README's "Dynamic Interval Adjustment" example (README.md ~L124-140) builds an
IntervalActionOptions, starts the action, and then assigns:IntervalActionOptions.ActionIntervalis{ get; init; }(IntervalAction/IntervalActionOptions.cs:35), so this is compile error CS8852. Even if it compiled, it would have no effect:IntervalAction.Startcopies the options into the instance's private init-onlyActionInterval(IntervalAction/IntervalAction.cs:61,:147), andRestart()/RestartAsync()never re-read the options.The README API table also lists
IsRunningandOptionsproperties (README.md ~L154-155) that do not exist onIntervalAction.Why it matters
A user who follows the documented example to speed up or slow down a running action gets a build failure, and there's no public API to achieve the documented behaviour. The only route is
Stop()followed by a freshStart(...), which loses the last-run timestamp and any pending exception state.Suggested fix / acceptance criteria
Either:
Restart(IntervalActionOptions)/ChangeInterval(TimeSpan), or a thread-safe settable interval), with a test showing the new interval takes effect from the next tick; and update the README example to use it; orIsRunning/Optionsrows from the README.Related but distinct: #71 (Dispose), #59 / PR #78 (async actions).