定时器.ElapsedEventHandler函数未触发

本文关键字:函数 ElapsedEventHandler 定时器 | 更新日期: 2023-09-27 18:05:36

static  System.Timers.Timer _timer;
    static string _ScheduledRunningTime ="6:00 AM";
    static void Main(string[] args)
        {
        try
            {
            _timer = new System.Timers.Timer(6000);
            _timer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
            _timer.Enabled = true;
            _timer.Start();
            }
        catch (Exception ex)
            {
            //Displays and Logs Message
            _loggerDetails.LogMessage = ex.ToString();
            _writeLog.LogDetails(_loggerDetails.LogLevel_Error, _loggerDetails.LogMessage);
            }
        }
    static void timer_Elapsed(object sender, ElapsedEventArgs e)
        {
        string _CurrentTime=String.Format("{0:t}", DateTime.Now);
        if (_CurrentTime == _ScheduledRunningTime)
            {
            ExtractDataFromSharePoint();
            }
        }

这是我的代码,我无法确定为什么timer_Elapsed Method没有触发,我在这段代码中做错了什么。

定时器.ElapsedEventHandler函数未触发

我猜你的应用程序几乎立即停止了。这是因为控制台应用程序通常是输入/输出应用程序,一旦代码中没有更多的读或写操作,它就会结束。

Windows窗体和WPF有一个消息传递系统,直到你结束你的应用程序。

在事件触发之前您的应用程序正在关闭。

请在Main方法的末尾使用Console.ReadKey()或另一个同步。