System.Timers.Timer がいつガベージと見なされ、参照を保存していない場合にガベージ コレクターによって収集されるかを知りたいのですが、有効になっています。
しかし、Timer がゴミと見なされるのはどの時点でしょうか?
次のコードを検討してください。
public void TriggerUpdateStatus() {
toolStripStatusLabel1.Text = "*";
new Timer() {
Interval = 1000,
Enabled = true
}.Elapsed += new ElapsedEventHandler(
(object sender, ElapsedEventArgs args) => {
toolStripStatusLabel1.Text = "";
Timer t = ((System.Timers.Timer) sender);
t.Stop();
t.Dispose();//Is this needed?
});
}
このコード ブロックは、コードが更新をトリガーするときに 2 秒ごとに実行され、フォームの下隅に星の文字が追加され、接続が正常であることを示します。参照なしでタイマーを作成します。このタイマーは、1 秒後に星を再び削除し、それ自体を停止して破棄します。