zoukankan      html  css  js  c++  java
  • Timer 123

    1.System.Threading.Timer

    代码

    //http://msdn.microsoft.com/en-us/library/system.threading.timer.aspx
    using System;
    using System.Threading;

    class TimerExample
    {
        
    static void Main()
        {
            
    // Create an event to signal the timeout count threshold in the
            
    // timer callback.
            AutoResetEvent autoEvent     = new AutoResetEvent(false);

            StatusChecker  statusChecker 
    = new StatusChecker(10);

            
    // Create an inferred delegate that invokes methods for the timer.
            TimerCallback tcb = statusChecker.CheckStatus;

            
    // Create a timer that signals the delegate to invoke 
            
    // CheckStatus after one second, and every 1/4 second 
            
    // thereafter.
            Console.WriteLine("{0} Creating timer.\n"
                DateTime.Now.ToString(
    "h:mm:ss.fff"));
            Timer stateTimer 
    = new Timer(tcb, autoEvent, 1000250);

            
    // When autoEvent signals, change the period to every
            
    // 1/2 second.
            autoEvent.WaitOne(5000false);
            stateTimer.Change(
    0500);
            Console.WriteLine(
    "\nChanging period.\n");

            
    // When autoEvent signals the second time, dispose of 
            
    // the timer.
            autoEvent.WaitOne(5000false);
            stateTimer.Dispose();
            Console.WriteLine(
    "\nDestroying timer.");
        }
    }

    class StatusChecker
    {
        
    private int invokeCount;
        
    private int  maxCount;

        
    public StatusChecker(int count)
        {
            invokeCount  
    = 0;
            maxCount 
    = count;
        }

        
    // This method is called by the timer delegate.
        public void CheckStatus(Object stateInfo)
        {
            AutoResetEvent autoEvent 
    = (AutoResetEvent)stateInfo;
            Console.WriteLine(
    "{0} Checking status {1,2}."
                DateTime.Now.ToString(
    "h:mm:ss.fff"), 
                (
    ++invokeCount).ToString());

            
    if(invokeCount == maxCount)
            {
                
    // Reset the counter and signal Main.
                invokeCount  = 0;
                autoEvent.Set();
            }
        }
    }
  • 相关阅读:
    PID控制心得 2013/2/11
    在LaTeX文档中插入图片的几种常用的方法
    学习总结 2013/2/11
    eclipse 中引用其他项目及项目打包
    随笔2013/2/13
    随笔2013/2/19
    【转载】Latex对中文的支持 模版
    Latex 第二个程序
    Fences 桌面图标整理收纳箱
    消除“星期一综合症” 大前研一的周末时间分配术
  • 原文地址:https://www.cnblogs.com/zyip/p/1862845.html
Copyright © 2011-2022 走看看