C# Timer同步和异步使用

Timer同步使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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("\nPress the Enter key to exit the application...\n");
            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("\nPress the Enter key to exit the application...\n");
            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

posted on   广交天下好友  阅读(3581)  评论(1编辑  收藏  举报

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

导航

统计

点击右上角即可分享
微信分享提示