我在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