我有一个 Timer 函数,我从global.asax 中的 Application_Start调用它
这是课程:
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。天呐!