作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含 n 个(当前 n = 2)个实例的 Azure 辅助角色。每个实例的主线程上都有一个 System.Timers.Timer,每 20 秒执行一次,产生一些工作进程。当角色实例最初启动时,它们通过内部端点同步自身,以便计时器同时启动(这是可行的)。
在一天的过程中,这两个具有相同间隔的计时器往往会漂移 - 一个最终会比以前提前几秒钟开始,而另一个可能会朝相同的方向发展,或者更糟糕的是另一个。
我的运行方法基本上如下:
public override void Run()
{
while (true)
{
GC.KeepAlive(this.LogTimer); // make sure garbage collection never touches the timer
}
}
问题:
预先感谢您的宝贵时间,
亚历克斯
最佳答案
System.Timers.Timer 并不是 100% 准确,它受到操作系统中线程调度的限制。两个单独的服务器各自运行一个计时器,最终会失去同步,这是有道理的。
关于c# - System.Timers.Timer在Azure辅助角色中徘徊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7436997/
我是一名优秀的程序员,十分优秀!