Timers.ElapsedEventHandler函数未触发

时间:2014-05-29 06:33:00

标签: c#

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();
            }
        }

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

2 个答案:

答案 0 :(得分:1)

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

Windows Forms和WPF有一个消息传递系统,在您结束应用程序之前一直运行。

答案 1 :(得分:0)

您的应用程序在事件触发前关闭。请在Main方法结束时使用Console.ReadKey()或其他同步。