日期:2014-05-17  浏览次数:20706 次

停止定时器Timer

[STAThread]
        static void Main(string[] args)
        {
            Program p = new Program();
            p.DB();
            System.Timers.Timer aTimer = new System.Timers.Timer();
            aTimer.Elapsed += new ElapsedEventHandler(TimeEvent);
            // 设置引发时间的时间间隔 此处设置为1秒(1000毫秒)
            aTimer.Interval = 1000;
            aTimer.Enabled = true;
            Console.ReadLine();
        }

   static void TimeEvent(object source, ElapsedEventArgs e)
        {
            // 得到 hour minute second  如果等于某个值就开始执行某个程序。
            int intMinute = e.SignalTime.Minute;
            int intSecond = e.SignalTime.Second;
            // 定制时间; 比如 在10:30 :00 的时候执行某个函数
            //int iHour = 10;
            int iMinute = 0;
            int iSecond = 0;
            //设置 每个小时的0分钟开始执行
            if (intMinute == iMinute && intSecond == iSecond)
            {
                Program p = new Program();
                p.DB();
            }
        }

如何在执行定时器的方法p.DB的时候 
如果出错 则停止定时器的运行 但是控制台应用程序不退出(因为我把错误输出到了控制台,我要查看 不能退出)

------解决方案--------------------
加try catch finally保护,在finally里面停掉定时器,不过,这时需要定时器是全局的变量
------解决方案--------------------
try
{
}
catch
{
输出到控制台
}
------解决方案--------------------
 static void TimeEvent(object source, ElapsedEventArgs e)