I'm working on a request timeout mecanism. My initial approach would be to create one System.Threading.Timer for each request. The number of concurrent requests could scale up to thousands.
I'm wondering if I should instead create a TimeoutScheduler that would internally use only one timer instead of having one per request.
Can anyone who knows the internals of System.Threading.Timer give me some insights on if a TimeoutScheduler would be a good idea or if it would only try to optimize something already efficient enough.
Note: For my scenario, the timer precision is not important.
(I did some performance test with System.Threading.Timer with alot of concurrent timers. It seemed to scale well, but I'm not sure if it will put unwanted pressure in a real system)