, Dr Herbie wrote

Basic solution for multiple alarms:  Have a single timer that fires at appropriate intervals (depending on the accuracy or your alarms that could be every second or every minute).  When the timer fires, check a list of alarm times to see if you have reached one yet; if so show the alarm message to the user.

Simple.

Herbie

My basic solution would be to use the quartz scheduler. Written well (the .NET port), tried and tested so relatively bug free.