加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何配置计时器

发布时间:2020-12-16 00:14:25 所属栏目:百科 来源:网络整理
导读:我有以下代码使用System.Timers.Timer: // an instance variable Timer inside a methodTimer aTimer = new Timer();aTimer.Elapsed += new ElapsedEventHandler(OnElapsedTime);aTimer.Interval = 300000;aTimer.AutoReset = false;aTimer.Enabled = true;
我有以下代码使用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;
    }
}

我有以下代码来处理事件:

private static void OnElapsedTime(Object source,ElapsedEventArgs e)
{
    // do something
}

问题是:如果定时器事件被触发并进入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();
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读