As a starting point I'll write up what I found about these functions before. I'm hoping someone will take a better look at them and will write a more complete answer.
Spelunking in version 8,
Internal`AddPeriodical[Print["boo!"], 3]
Now you get a boo!
every 3 seconds.
Internal`Periodicals[]
(* ==> {Print["boo!"]} *)
Now do
Internal`RemovePeriodical[Print["boo!"]]
to stop it.
Internal`Periodicals[]
(* ==> {} *)
Note that AddPeriodical
and RemovePeriodical
have HoldFirst
.
Internal`$ThisPeriodical
seems to be undefined during normal evaluations, while it is set to the currently executing periodical (wrapped in HoldForm
) when a periodical is being executed.
Most (all?) of the version 8 functionality seems to be implementable in terms of these, provided that they work the same way in version 7 as in 8 (which I cannot test).