我有以下代码使用System.Timers.Timer:
// an instance variable Timer inside a method
Timer aTimer = new Timer();
aTimer.Elapsed += new ElapsedEventHandler(OnElapsedTime);
aTimer.Interval = 300000;
aTimer.AutoReset = false;
aTimer.Enabled = true;
while (aTimer.Enabled)
{
if (count == expectedCount)
{
aTimer.Enabled = false;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我有以下代码来处理事件:
private static void OnElapsedTime(Object source, ElapsedEventArgs e)
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
问题是:如果定时器事件被触发并进入OnElapsedTime,Timer对象是否会停止并被正确地垃圾收集?如果没有,我该怎么做才能正确处理Timer对象/停止它?我不希望计时器突然蠕动并在我的应用程序中造成破坏.
调用Timer.Dispose:http: //msdn.microsoft.com/en-us/library/zb0225y6.aspx
private static void OnElapsedTime(Object source, ElapsedEventArgs e)
{
((Timer)source).Dispose();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13286 次 |
| 最近记录: |