0

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 秒後に星を再び削除し、それ自体を停止して破棄します。

4

1 に答える 1