【发布时间】:2020-09-20 09:24:11
【问题描述】:
我有一个 window 服务,它使用 System.Threading.Timer 在特定配置的时间间隔调用端点。我说 10 个实例计时器配置为以相同的时间间隔(比如 10 秒)调用相同的端点。如果 HTTP 端点需要更长的时间才能完成,则不会触发其他我的计时器事件。 http 调用返回后会触发其他计时器。 在任何时间点,只有两个计时器同时触发并运行处理程序代码。 在处理程序代码执行期间,没有其他计时器触发。
准确地说,只有 2 个计时器同时运行。我正在使用 .net 框架 4.8
我将无法在此处发布代码,因为它是旧版专有代码
【问题讨论】:
-
是 10 个定时器还是 2 个?你能显示你的代码吗? minimal reproducible example 将不胜感激。
-
这是一个 ASP.NET 项目吗?控制台应用程序?赢表格?服务?
-
你应该确保你没有受到
ThreadPool的限制,如果需要的话允许它快速扩展:ThreadPool.SetMinThreads(100, 10);
标签: c# .net multithreading timer .net-4.8