码迷,mamicode.com
首页 > 其他好文 > 详细

System.Threading.Timer

时间:2017-08-24 17:56:38      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:change   实例   mmc   垃圾回收   log   直接   comm   oms   from   

        /// <summary>
        /// 清理数据
        /// </summary>
        public void Clear()
        {
            // 立即启动计时器
            Timer tClear = new Timer((state) =>
            {
                BLLCommon.Clear();
            });

/* 若是只在构造函数中设置间隔时间,页没有这一行时,则只执行一次 */
            tClear.Change(TimeSpan.FromSeconds(0), TimeSpan.FromHours(CMMConstants.ClearInterval));

        }

PS: 在将Timer定义成全局变量,并在程序启动方法中调用 Change 方法时,按预期执行 。  直接new一个Timer实例,只执行一次的原因是否是因为被垃圾回收器回收了 ?

msdn上的一句话:

只要你使用的是Timer,你必须保留对它的引用。与任何托管对象一样,当没有引用它时,Timer会被收集垃圾。计时器仍然有效的事实并不能阻止它被收集。

 

System.Threading.Timer

标签:change   实例   mmc   垃圾回收   log   直接   comm   oms   from   

原文地址:http://www.cnblogs.com/coder-soldier/p/7424024.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!