global.asaxの Application_Start から呼び出す Timer 関数があります。
これはクラスです:
public class AlertTimer
{
public AlertTimer()
{
//
// TODO: Add constructor logic here
//
}
static System.Timers.Timer aTimer = new System.Timers.Timer();
public static void Start()
{
aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
aTimer.Interval = 30000;
aTimer.Enabled = true;
GC.KeepAlive(aTimer);
}
public static void OnTimedEvent(object source, ElapsedEventArgs e)
{
PresenceService ps = new PresenceService();
ps.GetAbsenceContacts(); //takes 10 seconds
}
}
さて、私の質問はPresenceService ps = new PresenceService();
、タイマーが実行された後にこのクラスタイプがクリーンになっているのか、それとも GC がそれをメモリに保持しており、OnTimedEvent が実行されるたびに新しいものを開始しているのかということです。
ありがとう!
結論:コードから GC を削除します。Tnx!