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回しか実行されず、その後タイマーはもう実行されませんでした。サービスが停止するまでライブを維持する必要があります
誰かが私のタイマーが停止し続ける理由を知っていますか??