首页 新闻 会员 周边

System.Thread.Timer定时器TimerCallback委托定时发送

0
[已解决问题] 解决于 2012-03-17 17:51

我使用TimerCallBack定时到每天的早上8点发送邮件,但是为什么就会发送一次啊,好像他走一遍了,就关闭了,不走了,但是我没有关啊,
结果我修改成每三秒走的也是就发送一遍啊,怎么回事啊,请各位人士指点
  Timer time = new Timer(new TimerCallback(CertainTask), state,3000,0);

问题补充: protected override void OnStart(string[] args) { AutoResetEvent autoEvent = new AutoResetEvent(false); TimerCallback timerDelegate = new TimerCallback(CertainTask); Timer time = new Timer(timerDelegate, autoEvent, 0, 3000); } private void CertainTask(object state) { send s = new send(); s.SendMial("756714996@qq.com", ""); } protected override void OnStop() { }
rains的主页 rains | 小虾三级 | 园豆:860
提问于:2011-01-17 15:31
< >
分享
最佳答案
0

先把 发送邮件的代码替换成简单的任务,测试一下,比如 Console.Beep()蜂鸣声 测试。

如果正常 那么就是 发送邮件代码的问题了。比如资源回收,异常退出等情况。

不行把代码贴出来看看

慧☆星 | 大侠五级 |园豆:5640 | 2011-01-18 13:07
其他回答(2)
0

AutoResetEvent autoEvent = new AutoResetEvent(false);
TimerCallback timerDelegate = new TimerCallback(timerSystemRefresh_EventProcessor);
System.Threading.Timer time = new System.Threading.Timer(timerDelegate, autoEvent, 0, 60 * 1000);

试试这个

manji | 园豆:633 (小虾三级) | 2011-01-18 10:03
还是不行啊,他就是走一次啊,我写的windows服务啊,我在OnStart里面写的,但是就是不行啊OnStop里面什么都没有写啊
支持(0) 反对(0) rains | 园豆:860 (小虾三级) | 2011-01-18 10:56
0

你的Timer的作用域在OnStart内,当服务启动执行OnStart时当然就只有一次。你将Timer定义在OnStart外面,在OnStop里面释放Timer

Shiaupo | 园豆:272 (菜鸟二级) | 2011-01-19 11:50
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册