I think using a timer would be the best course of action.
It will (of course) increase the CPU time the program uses, but not much. What is has to do is very little, and 60 times a second (or whatever) isn't that much in terms of modern CPUs.
Just cut and paste the program above and try it. On my system, it doesn't even register (it stays at 00% whether the timer event is 1 Hz or 60 Hz). So whatever CPU time it will use will probably be more dependant on stuff you add (like checking streams, et al).
It will (of course) increase the CPU time the program uses, but not much. What is has to do is very little, and 60 times a second (or whatever) isn't that much in terms of modern CPUs.
Just cut and paste the program above and try it. On my system, it doesn't even register (it stays at 00% whether the timer event is 1 Hz or 60 Hz). So whatever CPU time it will use will probably be more dependant on stuff you add (like checking streams, et al).