10 分の時間間隔で system.timers.timer コントロールを使用する winform アプリを作成しました。特定のイベントが発生したときにインクリメントされる整数変数を宣言しました。問題は、整数値が 0 にリセットされることですが、タイマー制御を 1 分に設定すると、正しい結果が表示されます。この奇妙な動作の理由を知っている人はいますか?
私はいくつかの調査を行い、理由の1つはガベージコレクターがこれを担当している可能性があることを発見しましたが、int値はヒープに保存されていますよね? 他の解決策を知っている場合は、アプリ ドメインが閉じられるまで GC できません。アドバイスをお願いします。本当にこれが必要でしたか? 問題は変数が GC によってリセットされていることだと思いますが、GC.KeepAlive(TimerName); も使用しました。