我想知道是否有合理的方法来确定Timers.Timer对象的加载功能?或者说,线程功能。有人知道使用Timer类旋转大量(数百个)线程是否有任何问题?
编辑:为了工作,我们将启动一些线程,这些线程将执行阈值检查并根据达到阈值的人给出积分。它将为每个客户端启动一个线程,并将每隔5分钟检查一次。它是一个服务,它将安装在服务器上,因此我使用Timers.Timer而不是Threading.Timer(因为我也听说过Timers.Timer比Threading.Timers更加线程安全)。目前,我只会有大约10个计时器,因为这是我需要处理的全部内容。我要求可能的未来负荷。还使用此帖子作为使用哪个计时器的参考:System.Timers.Timer vs System.Threading.Timer
答案 0 :(得分:3)
是否有人知道使用Timer类旋转大数(数百个)线程是否存在任何问题?
您似乎假设每个计时器都会创建一个私有线程。但事实并非如此。计时器回调在.NET线程池上执行。因此,创建许多计时器本身并不是问题,但是线程池可以处理的并发工作量明显受到限制。如果所有计时器同时发射,这将对您产生影响。
Microsoft在文章The Managed Thread Pool中提供了有关线程池的一些常规信息。