| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2079 人关注过本帖
标题:这段程序运行中经常造成系统无响应,大侠们看看,问题出在哪里啊
只看楼主 加入收藏
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10539
专家分:42927
注 册:2014-5-20
收藏
得分:0 
IF MINUTE(当前时间)=0 AND sec(当前时间)=0 &&
IF HOUR(当前时间)=23&& AND MINUTE(当前时间)=59 AND SEC(当前时间)=59
在timer用相等比对有可能会“错失时机”而达不到要求,如:
sec(当前时间)=0
SEC(当前时间)=59
2022-06-13 11:58
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:0 
肯定是会错过,所以不能用 =

2022-06-13 12:38
my2318
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:14
帖 子:250
专家分:621
注 册:2014-3-18
收藏
得分:0 
以下是引用Pgwyg在2022-6-13 09:39:44的发言:

谢谢您,我需要整点保存数据,而且要有时间显示,原来使用一个timer实现时间同步显示、实时数据采集、和数据保存,出现问题后又添加了一个专门负责数据采集,还是出现程序无响应的问题,即使停止数据采集工作,也是这样,现在又加了一个计时器,专门负责时间显示,看看能否成功。百思不得其解的是有时工作几天没问题,一旦出现问题,就是停在19:59:59和23:59:59,如果随机还好理解。TYR也未能捕捉到错误。
TRY
DO FORM YCCB2
READ EVENTS        
CATCH TO ex
        ex_info= "错误编号: "+ALLTRIM(STR(ex.ErrorNo))+CHR(10)+CHR(13)+;
        "    错误行号: "+ALLTRIM(STR(ex.LineNo))+CHR(10)+CHR(13)+;
        "    错误信息: "+ALLTRIM(ex.Message)+CHR(10)+CHR(13)+;
        "    错误函数: "+ALLTRIM(ex.Procedure)+CHR(10)+CHR(13)+;
        "    错误细节: "+ALLTRIM(ex.Details)+CHR(10)+CHR(13)+;
        "调用堆栈级别: "+ALLTRIM(STR(ex.StackLevel))+CHR(10)+CHR(13)+;
        "  代码行内容: "+ALLTRIM(ex.LineContents)
        StrToFile(ex_info, "d:\error_info.txt")
ENDTRY

整点是一个时刻,而程序处理所有数据需要一段时间吧,是一个时间段,只保存整点数据,这是一个逻辑悖论。应该像几位版主说的,整点附近的时间段数据可以看做整点时的数据,这样处理起来就简单方便了。如果是我做,就在整点开始保存所有数据。这点可以参考月底手机流量的记录方法,当然我说的是三大公司,不是个体手机。
2022-06-13 13:55
Pgwyg
Rank: 2
等 级:论坛游民
帖 子:28
专家分:20
注 册:2022-6-10
收藏
得分:0 
按照7楼的思路创建了一个日志,只保留日志功能,删除TIMER事件中的其他过程
程序如下:
*Timer1控件interval=500
*Timer1控件Timer事件
*
当前时间=DATETIME()
*显示时间
this.Enabled=.f.
IF thisform.timexs.Caption!=TTOC(当前时间)
    更新时间显示
    thisform.timexs.Caption=TTOC(当前时间)
ENDIF
*整点(每60分钟)保存一次数据
IF MINUTE(当前时间)=0 AND sec(当前时间)=0
    INSERT INTO DATA\TEST_DATA (TIME_T) VALUES (当前时间)
    thisform.label1.CAPTION=TTOC(当前时间)+" 的数据已经保存! "   
ENDIF
this.Enabled=.t.
运行结果
第一天早上9点开始运行,每小时保存一次数据,日志上显示最后一条数据是19:00:00,但是thisform.label1.CAPTION显示20点、21点、22点、23点的数据已经保存,实际上数据并没有保存!
thisform.timexs.Caption控件最后显示为23:59:59,程序无响应,使用任务管理器强制退出。
问题出在那里?


[此贴子已经被作者于2022-6-14 09:05编辑过]

2022-06-14 09:02
sostemp
Rank: 4
等 级:贵宾
威 望:10
帖 子:202
专家分:284
注 册:2009-6-2
收藏
得分:0 
上传示例来测试吧
2022-06-14 09:38
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:66
帖 子:1063
专家分:2579
注 册:2015-12-30
收藏
得分:0 
这台机器除了这个任务,还执行其他什么任务吗?
2022-06-14 11:06
快速回复:这段程序运行中经常造成系统无响应,大侠们看看,问题出在哪里啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015284 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved