pub fn timeout_add<F>(interval: Duration, func: F) -> SourceId where
F: FnMut() -> Continue + Send + 'static,
Adds a closure to be called by the default main loop at regular intervals with millisecond granularity.
func will be called repeatedly every
interval milliseconds until it
Continue(false). Precise timing is not guaranteed, the timeout may
be delayed by other events. Prefer
timeout_add_seconds when millisecond
precision is not necessary.
The default main loop almost always is the main loop of the main thread.
Thus the closure is called on the main thread.
Sets a function to be called at regular intervals, with the default
G_PRIORITY_DEFAULT. The function is called repeatedly
until it returns
false, at which point the timeout is automatically
destroyed and the function will not be called again. The first call
to the function will be at the end of the first
Note that timeout functions may be delayed, due to the processing of other event sources. Thus they should not be relied on for precise timing. After each call to the timeout function, the time of the next timeout is recalculated based on the current time and the given interval (it does not try to ‘catch up’ time lost in delays).
See [memory management of sources][mainloop-memory-management] for details
on how to handle the return value and memory management of
If you want to have a timer in the “seconds” range and do not care
about the exact time of the first call of the timer, use the
g_timeout_add_seconds() function; this function allows for more
optimizations and more efficient system power usage.
This internally creates a main loop source using
and attaches it to the global
the callback will be invoked in whichever thread is running that main
context. You can do these steps manually if you need greater control or to
use a custom main context.
It is safe to call this function from any thread.
The interval given is in terms of monotonic time, not wall clock
the time between calls to the function, in milliseconds (1/1000ths of a second)
function to call
the ID (greater than 0) of the event source.