.NET System.Timers.Timer

Timer 组件是基于服务器的计时器,在应用程序中能够在指定的间隔时间、周期性的引发Elapsed 事件,我们可以操控此事件以提供自己需要的定期处理。

在 .NET 中有两种计时器控件——基于服务器的计时器和标准的基于Windows 的计时器。
基于 Windows 的计时器为在 Windows 窗体应用程序中使用而进行了优化,基于服务器的计时器是传统的计时器为了在服务器环境上运行而优化后的更新版本。

基于服务器的Timer 是为在多线程环境中用于辅助线程而设计的,可以在线程间移动来处理引发的Elapsed 事件,这样就可以比Windows 计时器更精确地按时引发事件。

我这里主要用于设置一个超时时长问题,代码如下:

public int SetTimeOut(int timeout)
        {
            if (mTimeout == timeout) return 1;
            if (this.mTimeOutTimer == null)
            {
                this.mTimeOutTimer = new System.Timers.Timer(timeout);//初始化 Timer 组件
                ElapsedEventHandler th = new ElapsedEventHandler(TimeOutEventHandle);//创建Elapsed事件
                GC.KeepAlive(th);//使得不被回收
                this.mTimeOutTimer.Elapsed += th;//添加 ElapsedEventHandle 事件

                //每到指定时间Elapsed事件是触发一次(false),还是一直触发(true)
                this.mTimeOutTimer.AutoReset = true;
            }
            else
            {
                this.mTimeOutTimer.Interval = timeout;//获取或设置引发 Elapsed 事件的间隔
            }

            mTimeout = timeout;
            this.mTimeOutTimer.Enabled = false;//不引发 Elapsed 事件
            return 1;
        }

转载于:https://www.cnblogs.com/380614424-Huang/p/4249546.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值