我在c#中构建一个服务应用程序。我试图让我的行动(阵列)每2秒定时器。但我的函数调用完成后,我的计时器保持死机。服务计时器永远活着
我的OnStart:
...
Alaram Fi = new Alaram();
Fi.AgentStart();
GC.KeepAlive(Fi);
...
我Alaram类:
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次后,我的计时器没有执行执行最大了。我需要它来保持直到服务停止
任何人都知道为什么我的计时器不停地打勾?
你有什么建议可以永生吗?我也有我的课保持活力,这足够吗? – user1054776 2012-04-28 03:33:13
@ user1054776,我已经更新了我的答案,使其更加清晰。 – Matt 2012-04-28 03:38:43
哇,这是工作...非常感谢你 – user1054776 2012-04-28 04:03:06