c#定时运行程序分享(定时程序)


在C#中,实现定时运行程序的一种常用方法是使用`System.Threading.Timer`类或者`System.Timers.Timer`类,另一个更现代且功能强大的选择是使用`System.Threading.Tasks.Task`结合`System.Threading.CancellationTokenSource`和`System.Threading.Tasks.Delay`。不过,对于简单的定时任务,`System.Timers.Timer`因其易用性而广受欢迎。

下面是一个使用`System.Timers.Timer`来实现定时运行程序的基本示例:


using System;
using System.Timers;

namespace TimerExample
{
    class Program
    {
        // 创建一个Timer对象
        private static Timer timer;

        static void Main(string[] args)
        {
            // 设置Timer的间隔时间,这里是每2秒触发一次
            timer = new Timer(2000);

            // 注册Elapsed事件的处理程序
            timer.Elapsed += OnTimedEvent;

            // 将Timer设置为AutoReset,这样它就会不断重复
            timer.AutoReset = true;

            // 启动Timer
            timer.Enabled = true;

            Console.WriteLine("按任意键退出...");
            Console.ReadKey();

            // 停止Timer
            timer.Stop();
            timer.Dispose();
        }

        // 定义Elapsed事件的处理程序
        private static void OnTimedEvent(Object source, ElapsedEventArgs e)
        {
            Console.WriteLine("定时任务执行: " + e.SignalTime);

            // 在这里编写你需要定时执行的代码
        }
    }
}

在这个示例中,我们创建了一个`Timer`对象,并设置了它的间隔时间为2000毫秒(即2秒)。然后,我们通过`Elapsed`事件注册了一个处理程序`OnTimedEvent`,每当Timer的间隔时间到达时,就会触发这个处理程序。通过设置`AutoReset`为`true`,Timer会不断重复执行。

请注意,这个示例中的`Main`方法最后包含了停止和释放Timer的代码,以及一个等待用户按键的`Console.ReadKey()`调用,这是为了防止程序立即退出,从而允许你看到Timer的执行效果。在实际应用中,你可能不需要这些部分。

希望这个示例能够满足你关于C#定时运行程序的需求。