zoukankan      html  css  js  c++  java
  • 线程中Timer类使用(摘自cnblogs)


    下面这段程序演示了Timer类的用法。

    using System;
    using System.Threading;
    class TimerExampleState
    {
        
    public int counter = 0;
        
    public Timer tmr;
    }


    class App
    {
        
    public static void Main()
        
    {
            TimerExampleState s 
    = new TimerExampleState();

            
    //创建代理对象TimerCallback,该代理将被定时调用
            TimerCallback timerDelegate = new TimerCallback(CheckStatus);

            
    //创建一个时间间隔为1s的定时器
            Timer timer = new Timer(timerDelegate, s, 10001000);
            s.tmr 
    = timer;

            
    //主线程停下来等待Timer对象的终止
            while (s.tmr != null)
                Thread.Sleep(
    0);
            Console.WriteLine(
    "Timer example done.");
            Console.ReadLine();
        }

        
        
    //下面是被定时调用的方法
        static void CheckStatus(Object state)
        
    {
            TimerExampleState s 
    = (TimerExampleState)state;
            s.counter
    ++;
            Console.WriteLine(
    "{0} Checking Status {1}.", DateTime.Now.TimeOfDay, s.counter);
            
    if (s.counter == 5)
            
    {
                
    //使用Change方法改变了时间间隔
                (s.tmr).Change(50002000);
                Console.WriteLine(
    "changed");
            }

            
    if(s.counter == 10)
            
    {
                Console.WriteLine(
    "disposing of timer");
                s.tmr.Dispose();
                s.tmr 
    = null;
            }

        }

    }

         程序首先创建了一个定时器,它将在创建1秒之后开始每隔1秒调用一次CheckStatus()方法,当调用5次以后,在CheckStatus()方法中修改了时间间隔为2秒,并且指定在5秒后重新开始。当计数达到10次,调用Timer.Dispose()方法删除了timer对象,主线程于是跳出循环,终止程序。
  • 相关阅读:
    框架
    AS常用快捷键
    AS快捷键
    AS布局篇
    Android连载4-自定义控件的单位和尺寸
    Java连载107-join方法、锁(synchronized)机制以及原理
    HTML连载81-CSS书写格式、一个手机页面的基本结构
    Android连载3-定制ListView的界面、性能优化以及绑定点击事件
    JavaScript连载3-变量内存分析、常量、数据类型
    Java连载106-sleep方法以及中断方式、yield方法
  • 原文地址:https://www.cnblogs.com/xiaobaigang/p/930238.html
Copyright © 2011-2022 走看看