コンストラクターでタイマーを作成し、タイマーを構築されたクラスのメンバーにしたいと考えています。タイマーは他のクラス メンバーによって参照されないため、コンストラクターに対してローカルな変数にコンパイルされ、ガベージ コレクションが実行されて強制終了されます。
これを防ぐ方法の 1 つは、次のようなダミー参照を作成することです。
type MyClass() as o =
let timer = new Timer((fun _ -> o.Tick()), null, 0, 1000)
member private o.DummyRef = timer
member o.Tick() = printfn "Tick!"
強制的timer
にメンバーになるためのより適切な方法はありますか?