Timer ticker = new Timer(TimerMethod, null, 1000, 1000);
// TimerMethod 簽名:void TimerMethod(object state)
MSDN 警告:「如果沒有對 Timer 的引用,Timer 會被垃圾回收,即使 Timer 仍處在活動狀態。」
針對的是 **Timer 實例本身**(即變量 `ticker`),而非 `state` 參數。若 `ticker` 變量超出作用域且無其他引用,GC 可能回收 Timer 導致回調停止。
`state` 參數為 `null` 完全合法,僅表示回調不需要額外上下文。GC 回收風險針對 Timer 實例引用,與 `state` 無關。
C# System.Threading.Timer state 參數用途,垃圾回收針對 Timer 實例而非 state,防止過早回收最佳實踐。