影响变量值突变的因素可能有哪些?
做一个项目,遇到件怪事,大家不要说不信,我一开始也不相信,结果把现场的LOG拿回来一看,果然是这样:
有程序A,A中有变量a(计数器),a是integer型,a是formcreate时从配置文件中读入初始值,然后开始向上累加,一分钟加个1到2,除非操作员手动清零,否则不会变小. formdestory时再把a值写入配置文件,以备下次启动是调用.
还有一种情况a也会增加,那就是接到程序B送来的message,这种情况下a也会自动+1.
程序A基本上是24小时运行,除非断电或死机,基本上不关的.我写了一个定时器,每一分钟把a的值写在文本文件中,结果三天后从现场拿回那个文本文件,三天中a一共2次突然之间变小而且是个非零数. 三天中没有清过零,没有关过程序A.
所以请问,什么情况下内存中的变量值会突然变小?我已经Find in Files变量名这个关键字,所有跟变量名有关的语句全部仔细看过,没什么问题,唯一直接赋值的语句就是清零和从配置文件中读入初始值.其他都是a:=a+1; 请有类似经验的同志想一下, 什么情况下会这样?