In my project I would like to be able to call a method after 3 minutes have passed. There is no \"main loop\" to speak of so I cannot use a stopwatch and constantly check if
Timer is not a good solution for hundreds/thousands, as Timers are a limited resource.
Are all the methods to be called from the same application?
If so, I would create a small stub class that had a datetime, and an Action, and add delegates to the method to be called, along with the target time. Then in a background thread loop through the list and call the delegates when appropriate (and remove them obviously)
An alternate solution would be to do something like QueueUserWorkItem for each method to be called, and first thing in the thread sleep for the appropriate amount of time until the method should be called.
For all solutions (mine and others), be aware of any marshaling you have to do if you are interacting with the GUI, or any locking that may need to be done to avoid threading concurrency issues