要做一个程序,每分钟,每小时,每天各自触发一个方法。
用三个TIMER控件,但试验了好几天,发现没有效果。
请问大神,谁知道怎么解决。
如果只能用一个TIMER怎么判断当前时间为整点整分时间 ?
比如整点时间18:00:00
比如整分时间17:58:00该怎么判断这个时间,还望有个实际的代码演示一下,万分感激。
VS2008,.net的,C#
用三个TIMER控件,但试验了好几天,发现没有效果。
请问大神,谁知道怎么解决。
如果只能用一个TIMER怎么判断当前时间为整点整分时间 ?
比如整点时间18:00:00
比如整分时间17:58:00该怎么判断这个时间,还望有个实际的代码演示一下,万分感激。
VS2008,.net的,C#
解决方案 »
- 不拉控件的.NET怎么开发??菜鸟才拉控件??
- 在其他页面怎样去动态设置用户控件的属性?(急急急)
- DataSet填充xml文件问题,在线等,急急急!!!!
- GridView显示含有html语句的datatable却总原样输出的问题
- 如何获取DATALIST绑定的数值
- 查找 </asp:LinkButton> 标记时遇到意外的文件结尾?
- .aspx和.ascx在asp.net中的区别是什么?
- 今天是老爸生日,散分!!!
- 【紧急】求问:关于IE浏览器操作缓存的JS数据,显示不正常,其他浏览器则正常
- 多个<table>的控制??(马上给分)
- asp.net网站客户端导出excel
- 基于手机的视频点播平台开发几个简单问题求教?
比如整分时间17:58:00datetime.now.minute == 0 && datetime.now.second == 0 //整点时间
datetime.now.second == 0 //整分随手打的,自己改一下
比如整分时间17:58:00
这两个描述而言的。你说的“每小时、每天”其实还是“每分钟”的概念,是要在每分钟里边去判断是否出发事件。所以要判断“每小时”,必须而且只要做好判断“每分钟”。另外所谓的“每分钟”精度是什么呢?是误差不要超过1分钟,还是1秒钟?如果要求是“秒”级的,那么就不仅仅要在判断时简单地忽略秒(对于毫秒也是如此),而且你要先插入一个小的定时调整操作。例如启动时的是时间是 17点28分39秒431毫秒,那么你就应该先让定时器的 Interval 为 20秒569毫秒,然后等17点29分的时候再开始1分钟一次定时。这样才能比较接近“每分钟”的要求。
依此类推。这样用一个计时器可以满足三种(分钟、小时、天)的定时要求。而不用三个计数器。
还是说一下吧,不然好多东扯西扯的。。
一个TIMER执行每分钟将标记为每分钟的数据进行上传
一个。。每小时
一个。。每天
每分钟就是比如03:01:00 或者 03:02:00
每小时就是比如04:00:00 或者 05:00:00
每天就是00:00:00
现在3个TIMER在一个页面上摆放着,我看过这个SP1234说过这个给别人,说什么TIMER会回传啥的,所以我想执行每分钟的会在每分钟刷新这个页面,导致每小时每天被重新计时,导致只有分钟有效果,其他都没有效果。
然后我就来问啊,如何让三个TIMER各行其职,分开统计自己的计数?
如果这样行不通,那么只能用一个TIMER的话,那自然是每秒获得当天时间,再经过一系列判断,来实现三个TIMER的效果。
但是呢,我有小试验一下,每秒在文本框里显示当前时间,发现很大一部分,是会从比如03:01:59直接跳到03:02:01这样子的,所以我就怀疑自己啦。
最好是有能三个TIMER各行其职的方法
望各位大神不吝赐教 !~
我也不可能那么精确的知道部署到服务器的具体时间是多少,自然肯定也无法在0点0分0秒0毫秒把程序在服务器上启动起来。
我只需要在每个分钟内的任意一秒执行一个每分钟任务即可,然后接着是下一个分钟。
当然,主要问题在我,表达的不够细致。
但我觉得,我想问的问题,只是在TIMER控件上,如果三个同时用而不被回传刷新给重置了另外两个。
这才是我得主要问题,我看过你有回答过别人的这方面的问题。
是否把TIMER控件放在UPDATEPANL(拼写可能有误)里就可以了 ?
每个TIMER放在一个UPDATEPANL里 ?
谢谢 !~~
仅此而已。
实在不行,我是有后备办法了,但可以的,不太用后备方法,谢谢大家了。
这东西显然是要用windows后台服务来实现的。楼上的大神估计都没有考虑到你这么奇怪的想法。他们先入为主认为你是在做一个windows的后台程序。
因为不会做WINFORM程序,太少接触这个,这几年来一直都在用SQLSERVER,本来想再SQLSERVER里直接做这些上传工作的,因为SQL语法比C#用的好,结果卡在数据库字符集上面,没办法了,只好用C#来做定时上传,SQL来做上传控制。
SQL的自动计划太简单好用,上传程序不好做,但卡在字符集上,C#上传程序好做,但卡在自动计划上。
愁呀,就快变沙皮狗了
只留一个TIMER,60000毫秒一次间隔
创建两个静态变量,shi,fen
private static int fen = 0;
private static int shi = 0;
创建方法
private static void compleTimerWork()
{
if (fen % 2 == 0)
{
checkDataWork();
}
if (fen == 60)
{
shi += 1;
allImport("每小时");
fen = 0;
}
else
{
fen += 1;
allImport("每分钟");
}
if (shi == 24)
{
allImport("每天");
shi = 0;
}
}
http://blog.csdn.net/yenange/article/details/8288328
用网站不是太靠谱。同时用3个Timer为什么不可以?
关键是你的逻辑要清楚
SQL Server Job
Windows Service
protected override void OnStart(string[] args)
{
EventLog.WriteEntry("某某服务开始启动");
pf.WriteLog("服务启动"); System.Timers.Timer t = new System.Timers.Timer();
t.Interval = 5000;//每5分钟调用一次方法
t.Elapsed += new ElapsedEventHandler(ChkSvr);
t.AutoReset = true;//是执行一次(false),还是一直执行(true)
t.Enabled = true;//是否引发ElapsedEventHandler事件。
} public void ChkSvr(object source,ElapsedEventArgs e)
{
int intHour = e.SignalTime.Hour;
int intMinute = e.SignalTime.Minute;
int intSecond = e.SignalTime.Second; if (intHour == 15 && intMinute == 0 && intSecond < 5 )
{
System.Timers.Timer tt = (System.Timers.Timer)source;
tt.Enabled = false;
try
{ 执行定时方法
}
catch(Exception exp)
{
pf.WriteLog("执行出现错误,错误信息:"+exp.Message+",详细错误:"+exp.StackTrace.ToString());
}
finally
{
tt.Enabled = true;
}
} }以上一个定时是每天定点执行一次,我这个例子时间点控制并不精确,你可以改成你需要的。可以放多个Timer的,各自实现自已的定时需求。