C# 定时器

发布时间 2023-09-08 19:12:05作者: 虎虎生威啊

C# 定时器

using System.Timers;


internal class Program
{

    private static DateTime startTime;
    private static void Main(string[] args)
    {

        // 定义一个变量来存储定时器启动的时间
        // 创建一个定时器
        var timer = new System.Timers.Timer
        {
            // 设置定时器的时间间隔为1秒
            Interval = 1000
        };

        // 为定时器的Elapsed事件添加一个事件处理程序
        timer.Elapsed += Timer_Elapsed;
        timer.Elapsed += Timer_Elapsed2;


        // 启动定时器
        timer.Start();
        // 记录定时器启动的时间
        startTime = DateTime.Now;

        // 等待用户输入
        Console.WriteLine("按任意键退出...");
        Console.ReadKey();

        // 定义事件处理程序
        static void Timer_Elapsed(object sender, ElapsedEventArgs e)
        {
            Console.WriteLine("1:{0}", e.SignalTime);
        }


        // 定义事件处理程序
        static void Timer_Elapsed2(object sender, ElapsedEventArgs e)
        {
            // 在控制台输出当前时间
            Console.WriteLine("2:{0}", e.SignalTime);
            // 检查是否已经过了10秒
            if ((DateTime.Now - startTime).TotalSeconds >= 10)
            {
                // 取消订阅事件
                (sender as System.Timers.Timer)!.Elapsed -= Timer_Elapsed2!;
                // 停止定时器
                // (sender as System.Timers.Timer).Stop();
                Console.WriteLine("Timer_Elapsed2 已取消订阅并停止");
            }
        }
    }
}