我使用TimerCallBack定时到每天的早上8点发送邮件,但是为什么就会发送一次啊,好像他走一遍了,就关闭了,不走了,但是我没有关啊,
结果我修改成每三秒走的也是就发送一遍啊,怎么回事啊,请各位人士指点
Timer time = new Timer(new TimerCallback(CertainTask), state,3000,0);
先把 发送邮件的代码替换成简单的任务,测试一下,比如 Console.Beep()蜂鸣声 测试。
如果正常 那么就是 发送邮件代码的问题了。比如资源回收,异常退出等情况。
不行把代码贴出来看看
AutoResetEvent autoEvent = new AutoResetEvent(false);
TimerCallback timerDelegate = new TimerCallback(timerSystemRefresh_EventProcessor);
System.Threading.Timer time = new System.Threading.Timer(timerDelegate, autoEvent, 0, 60 * 1000);
试试这个
你的Timer的作用域在OnStart内,当服务启动执行OnStart时当然就只有一次。你将Timer定义在OnStart外面,在OnStop里面释放Timer