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对象,主线程于是跳出循环,终止程序。
  • 相关阅读:
    ansible 使用密码登录
    shell脚本报错:-bash: xxx: /bin/bash^M: bad interpreter: No such file or directory
    配置永久生效(登陆shell和非登陆shell)、I/O重定向、Here Docunmet 此处文档、管道、tee
    Navicat for PostgreSQL 序列详解
    flask第十五篇——Response
    Centos防火墙及SELINUX关闭
    linux查看网卡信息的几种方法(命令)
    Python之在函数中调用import语句
    python基础_格式化输出(%用法和format用法)
    Python中怎样简单地用一行写if-then语句?
  • 原文地址:https://www.cnblogs.com/xiaobaigang/p/930238.html
Copyright © 2011-2022 走看看