timer定时器的间隔时间为1秒时,可以起作用,设置为10秒就不好用了这个是为什么呢,(急求)

laoyang12345 2016-11-05 11:42:00


Timer timer = new Timer();
/// <summary>
/// 点击启动计时器
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnStart_Click(object sender, EventArgs e)
{
if (timer.Enabled)
{
timer.Stop();
}
else
{
timer.Start();
}
btnStart.Enabled = false;
btnStop.Enabled = true;
}
/// <summary>
/// 停止计时器
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnStop_Click(object sender, EventArgs e)
{
this.timer1.Stop();
btnStart.Enabled = true;
btnStop.Enabled = false;
}
/// <summary>
/// 控制时间
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void timer1_Tick_1(object sender, EventArgs e)
{
//timer.Interval = 1000 ;//间隔设定为一秒时就好用
timer.Interval = 1000 * 10;//设定10秒时就不好用
timer.Tick += new EventHandler(timer_Tick);

}

public void timer_Tick(object sender, EventArgs e)
{
if (this.dateTimePicker1.Value.ToString("ss") == DateTime.Now.ToString("ss"))//当前时间等于设定时间时,发送短信
{
((Timer)sender).Stop();
SendMessage();
MessageBox.Show("短信发送成功");
}
}

有没有其他的办法,我现在要每月的2号送短信,求大神,不要用windows计划任务;
...全文
1257 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你每12个小时判断一下今天是不是2号不就可以了么。用DateTime.Now.Date==2就行了。
gengchenhui 2016-11-08
  • 打赏
  • 举报
回复
哎,一声叹息,这不是代码问题,这是逻辑思维问题。。。
姓小名白丶 2016-11-08
  • 打赏
  • 举报
回复
或许系统时间不难吧 取出day比较这个也可以吧 判断发送没发送加个表示可以避免重复发送吧
laoyang12345 2016-11-05
  • 打赏
  • 举报
回复
引用 1 楼 shingoscar 的回复:
那就设个闹钟吧,每月2号提醒自己发短信

怎么设定啊,大神求代码啊
Poopaye 2016-11-05
  • 打赏
  • 举报
回复
那就设个闹钟吧,每月2号提醒自己发短信
xuzuning 2016-11-05
  • 打赏
  • 举报
回复
判断今天是几号,应该不会有问题吧? 发送短信后设置一个标志,这个不难吧? 那么发送短信的条件就是:今天是2号 且 已发送标志为假
  • 打赏
  • 举报
回复
你看都不看前边指出的“坑爹”在哪里,如何领会后边的总结提示呢?
  • 打赏
  • 举报
回复
引用 7 楼 laoyang12345 的回复:
大神,您能不能接地气一下,给我解决个问题
我的地气你借不到啊、不过脑去想啊。
闭包客 2016-11-05
  • 打赏
  • 举报
回复
引用 4 楼 laoyang12345 的回复:
[quote=引用 3 楼 closurer 的回复:] 当前时间不等于设定时间了吧?
对啊,可是我现在的问题是如果我把时间设定为每月2号,我的间隔时间是多少呢??现在我设定间隔为一天,到了2号那天会访问很多次啊会重复发送很多次;现在我将它设定为一次[code=csharp] timer.Interval = 1000 * 60 * 60 * 24; timer.Tick += new EventHandler(timer_Tick); ((Timer)sender).Stop();//这个就是将它停掉就执行一次,可是问题来了我如果将它停掉之后,程序只能执行一次,到下一个月2号就不能执行了;这个问题,快哭了。。。 [code][/quote] 呃……这种问题很简单的。 换个思路吧。 你的定时器每分钟检查一次都无所谓。 只需要检查现在时间是否超过这个月的 2号了,是的话就发送。
laoyang12345 2016-11-05
  • 打赏
  • 举报
回复
引用 6 楼 sp1234 的回复:
[quote=引用 4 楼 laoyang12345 的回复:] [quote=引用 3 楼 closurer 的回复:] 当前时间不等于设定时间了吧?
对啊,可是我现在的问题是如果我把时间设定为每月2号,我的间隔时间是多少呢??现在我设定间隔为一天,到了2号那天会访问很多次啊会重复发送很多次;现在我将它设定为一次[code=csharp] timer.Interval = 1000 * 60 * 60 * 24; timer.Tick += new EventHandler(timer_Tick); ((Timer)sender).Stop();//这个就是将它停掉就执行一次,可是问题来了我如果将它停掉之后,程序只能执行一次,到下一个月2号就不能执行了;这个问题,快哭了。。。 [code][/quote] 哭的还太少。 读代码应该都懂背后的逻辑,学会设计测试来找出问题。而不是仅仅重复简单概念。[/quote] 大神,您能不能接地气一下,给我解决个问题
  • 打赏
  • 举报
回复
引用 4 楼 laoyang12345 的回复:
[quote=引用 3 楼 closurer 的回复:] 当前时间不等于设定时间了吧?
对啊,可是我现在的问题是如果我把时间设定为每月2号,我的间隔时间是多少呢??现在我设定间隔为一天,到了2号那天会访问很多次啊会重复发送很多次;现在我将它设定为一次[code=csharp] timer.Interval = 1000 * 60 * 60 * 24; timer.Tick += new EventHandler(timer_Tick); ((Timer)sender).Stop();//这个就是将它停掉就执行一次,可是问题来了我如果将它停掉之后,程序只能执行一次,到下一个月2号就不能执行了;这个问题,快哭了。。。 [code][/quote] 哭的还太少。 读代码应该都懂背后的逻辑,学会设计测试来找出问题。而不是仅仅重复简单概念。
  • 打赏
  • 举报
回复
this.dateTimePicker1.Value.ToString("ss") == DateTime.Now.ToString("ss") 这是个坑爹的编码。
laoyang12345 2016-11-05
  • 打赏
  • 举报
回复
引用 3 楼 closurer 的回复:
当前时间不等于设定时间了吧?
对啊,可是我现在的问题是如果我把时间设定为每月2号,我的间隔时间是多少呢??现在我设定间隔为一天,到了2号那天会访问很多次啊会重复发送很多次;现在我将它设定为一次[code=csharp] timer.Interval = 1000 * 60 * 60 * 24; timer.Tick += new EventHandler(timer_Tick); ((Timer)sender).Stop();//这个就是将它停掉就执行一次,可是问题来了我如果将它停掉之后,程序只能执行一次,到下一个月2号就不能执行了;这个问题,快哭了。。。 [code]
闭包客 2016-11-05
  • 打赏
  • 举报
回复
当前时间不等于设定时间了吧?

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧