我在 C# 中构建了一个服务应用程序。我正在尝试每 2 秒使用计时器进行一次操作(数组)。但是在我的函数调用完成后,我的计时器继续消失。
我的开始:
...
Alaram Fi = new Alaram();
Fi.AgentStart();
GC.KeepAlive(Fi);
...
我的警报类:
public void AgentStart()
{
...
int i = 0;
Timer[] timers = new Timer[count];
while (myReader.Read())
{
timers[i] = new Timer(coba, myReader["DeviceId"], 0, 2000);
i++;
}
GC.KeepAlive(timers);
}
我的行动:
public void coba(object id)
{
...
int sec = Convert.ToInt32((string)myCommand.ExecuteScalar());
sec++;
myCommand = new SqlCommand("UPDATE Roles SET Value ='" + sec.ToString() + "' WHERE Name = 'Fire" + id.ToString() + "'", ibmsConnect);
myCommand.ExecuteNonQuery();
...
}
在我的计时器不再执行之后,我的计时器最多只能执行 36 次。我需要它保持活动状态,直到服务停止
有人知道为什么我的计时器不停地滴答作响吗?