• C# Timer同步和异步使用


    Timer同步使用

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Timers;
    
    namespace TestTimerConsole2
    {
        class Program
        {
            private static System.Timers.Timer timer;
            static double timejige = 5000;//5秒
    
            static void Main(string[] args)
            {
                SetTimer();
    
                Console.WriteLine("
    Press the Enter key to exit the application...
    ");
                Console.WriteLine("The application started at {0:HH:mm:ss.fff}", DateTime.Now);
                Console.ReadLine();
                timer.Stop();
                timer.Dispose();
    
                Console.WriteLine("Terminating the application...");
                Console.ReadKey();
            }
    
            private static void SetTimer()
            {
                // Create a timer with a two second interval.
                timer = new System.Timers.Timer(timejige);
                // Hook up the Elapsed event for the timer. 
                timer.Elapsed += OnTimedEvent;
                timer.AutoReset = true;
                timer.Enabled = true;
            }
    
            private static void OnTimedEvent(Object source, ElapsedEventArgs e)
            {
                timejige += 5000;
                Console.WriteLine("The Elapsed event was raised at {0:HH:mm:ss.fff}",
                                  e.SignalTime);
                
                Console.WriteLine(timejige);
    
                if (timejige >= 120000)//120000
                {//2分钟退出
                   
                    timer.Stop();
                    timer.Dispose();
                    Console.WriteLine("结束... ");
    
                    
                }
            }
        }
    }
    

     

    Timer异步使用

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Timers;
    
    namespace TestTimerConsole2
    {
        class Program
        {
            private static System.Timers.Timer timer;
            static double timejige = 5000;//5秒
    
            static void Main(string[] args)
            {
                SetTimer();
    
                Console.WriteLine("
    Press the Enter key to exit the application...
    ");
                Console.WriteLine("The application started at {0:HH:mm:ss.fff}", DateTime.Now);
                Console.ReadLine();
                timer.Stop();
                timer.Dispose();
    
                Console.WriteLine("Terminating the application...");
                Console.ReadKey();
            }
    
            private static void SetTimer()
            {
                // Create a timer with a two second interval.
                timer = new System.Timers.Timer(timejige);
                // Hook up the Elapsed event for the timer. 
                timer.Elapsed += OnTimedEvent;
                timer.AutoReset = true;
                timer.Enabled = true;
            }
    
            private static void OnTimedEvent(Object source, ElapsedEventArgs e)
            {
                timejige += 5000;
                Console.WriteLine("The Elapsed event was raised at {0:HH:mm:ss.fff}",
                                  e.SignalTime);
                
                Console.WriteLine(timejige);
    
                if (timejige >= 120000)//120000
                {//2分钟退出
                   
                    timer.Stop();
                    timer.Dispose();
                    Console.WriteLine("结束... ");
    
                    
                }
            }
        }
    }

    参考微软demo:https://docs.microsoft.com/zh-cn/dotnet/api/system.timers.timer?redirectedfrom=MSDN&view=netframework-4.8

  • 相关阅读:
    Effective C++学习笔记之explicit
    腾讯面试经验2
    腾讯面试经验
    值类型和引用类型的区别,struct和class的区别
    【转载】固态硬盘的S.M.A.R.T详解
    SSD的传输总线、传输协议、传输接口
    坏块管理(Bad Block Management,BBM)
    脱离SVN的控制
    Func的介绍
    简单AOP
  • 原文地址:https://www.cnblogs.com/suntanyong88/p/10875541.html
Copyright © 2020-2023  润新知