我编写了一个应用程序,它每 10 秒通过 FTP 下载文件,并且我有以下计时器代码。
timer3.Tick += new EventHandler(updateLogs);
timer3.Interval = (1000) * (10);
timer3.Enabled = true;
timer3.Start();
我的 updateLogs 函数:
timer3.Enabled = false;
server1_log = downloadLog("192.168.0.217", 1);
server2_log = downloadLog("192.168.0.216", 2);
server3_log = downloadLog("192.168.0.215", 3);
timer3.Enabled = true;
我意识到请求可能需要超过 10 秒的时间,这就是为什么我在调用 downloadLog() 之前禁用计时器并在之后启用计时器。
尽管如此,大约一分钟后,应用程序冻结并且 CPU 使用率跃升至 45+ %。当我注释掉 timer3 的代码时,应用程序可以正常运行很长时间,并且从不崩溃。
有任何想法吗?