Legend

Class
Struct
Enum
Interface
Delegate
Constructor
Method
Property
Event
Field

Namespace: RT.Util.Threading

Assembly: RT.Util.Core
Encapsulates a class performing a certain activity periodically, which can be initiated once and then permanently shut down, but not paused/resumed. The class owns its own separate thread, and manages this thread all by itself. The periodic task is executed on this thread.

The chief differences to Timer are as follows. This class will never issue overlapping activities, even if an activity takes much longer than the interval; the interval is between the end of the previous occurrence of the activity and the start of the next. The activity is executed on a foreground thread (by default), and thus will complete once started, unless a catastrophic abort occurs. When shutting down the activity, it's possible to wait until the last occurrence, if any, has completed fully.

Threading: unsafe (call public methods on the creating thread only) - or is it?

Encapsulates a class performing multiple related yet independent tasks on the same thread at a certain minimum interval each. Schedules the activity that is the most late at every opportunity, but will never execute more than one activity at a time (as they all share the same thread).

Threading: unsafe (call public methods on the creating thread only)

Simplifies the task of performing a certain action on an arbitrary thread with a certain minimum interval between two invocations. Only a single thread will execute the task; no threads will block waiting for that.