The documentation of System.Threading.Timer says that I should keep a live reference for it to avoid it being garbage collected. But where should I do that? My
System.Threading.Timer
I think it is OK to keep is a private static field of your class.
I would keep this reference as a static field rather than playing with garbage collector.