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没有触发,我在这段代码中做错了什么。
答案 0 :(得分:1)
我猜您的应用程序几乎立即停止。这是因为控制台应用程序通常是输入/输出应用程序,只要代码中没有更多的读取或写入操作就会结束。
Windows Forms和WPF有一个消息传递系统,在您结束应用程序之前一直运行。
答案 1 :(得分:0)
您的应用程序在事件触发前关闭。请在Main方法结束时使用Console.ReadKey()或其他同步。