Hi
Whilst looking for something else today I tripped over
www.atvsoftware.com. They have an event driven library which will listen for messages in the background. The danger with having something that is driven by timer is that that process will interrupt whatever is being done at the time. The code therefore has to be very robust and tidy up after itself else a lot of unpredictable things start happening (been there, done that)
HTH
Simon