修改实习生的代码

本文详细探讨了组内实习生在编写定时器程序时遇到的问题,该程序每隔1小时调用数据库操作,却导致CPU占用率始终为100%。通过深入分析,发现问题是由于循环计数器CYCLECOUNT未正确更新导致的无限循环现象。文章提供了解决方案,并解释了如何使用Console.ReadLine()替代原有代码避免程序过早终止。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

组里实习生写了个定时器的程序,每隔1个小时调用下插入数据库及其他的程序,结果莫名其妙始终cpu占用率100%,经过检查,

           CYCLECOUNT = 0;
            RUNTIME++;
            Console.WriteLine("程序GetAlive开始执行。");
            REMAINMINUTE = CYCLEMINUTE - CYCLECOUNT;
            Console.WriteLine("距离程序GetAlive的第" + RUNTIME + "次执行还有" + REMAINMINUTE + "分钟。");

            System.Timers.Timer aTimer = new System.Timers.Timer();
            aTimer.Enabled = false;
            //到达时间的时候执行事件; 
            aTimer.Elapsed += new System.Timers.ElapsedEventHandler(TimeEvent);
            //实例化Timer类,设置间隔时间为毫秒;   
            aTimer.Interval = CYCLETIME;
            //是否执行System.Timers.Timer.Elapsed事件;   
            aTimer.Enabled = true;
            //设置是执行一次(false)还是一直执行(true),默认为true;
            aTimer.AutoReset = true;
            Console.WriteLine("距离程序GetAlive的第" + RUNTIME + "次执行还有" + CYCLEMINUTE + "分钟。");
            //Console.WriteLine("按回车键立即结束程序。");
           while(true);

罪魁祸首就是最后一句...估计他是觉得没这句程序就结束了,其实采用Console.ReadLine();就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值