我有一个使用 System.Timers 计时器的 C# 应用程序,它重复调用一个函数。问题是,根据工作负载,如果函数调用的处理达到一定的 CPU 使用率 (98-100%),任何后续事件都会被阻止。
有没有办法防止这种情况发生,以免事件被阻止?
例如,计时器的事件处理程序是一个执行动态代码的函数,它可能需要一些时间和资源来处理。在此类处理期间,布尔值设置为 true,这会导致任何后续事件调用写入日志文件。但是,一旦事件的处理达到高 CPU 使用率,其他事件将不会写入日志文件。
我有一个使用 System.Timers 计时器的 C# 应用程序,它重复调用一个函数。问题是,根据工作负载,如果函数调用的处理达到一定的 CPU 使用率 (98-100%),任何后续事件都会被阻止。
有没有办法防止这种情况发生,以免事件被阻止?
例如,计时器的事件处理程序是一个执行动态代码的函数,它可能需要一些时间和资源来处理。在此类处理期间,布尔值设置为 true,这会导致任何后续事件调用写入日志文件。但是,一旦事件的处理达到高 CPU 使用率,其他事件将不会写入日志文件。
是的,将 Timers 属性 AutoReset 设置为 true。
阅读:https ://msdn.microsoft.com/en-us/library/system.timers.timer(v=vs.110).aspx