FTP 経由で 10 秒ごとにファイルをダウンロードするアプリケーションを作成しました。次のタイマーのコードがあります。
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() を呼び出す前にタイマーを無効にし、後で有効にする理由です。
それでも、約 1 分後にアプリケーションがフリーズし、CPU 使用率が 45% 以上に跳ね上がります。timer3 のコードをコメントアウトすると、アプリケーションは長時間正常に動作し、クラッシュすることはありません。
何か案は?