假情況:有一個班級(比方說BackgroundMagic
),它有Start()
和Stop()
方法。此類中的工作由單個線程完成,並且每X毫秒只是一個短循環。保持線程空閒或殺死它們/重新啓動它們?
就管理停止/啓動而言,哪個選項更好?無法決定走哪條路。
- 第一次調用Start()時,使用
IsBackground
= true初始化並啓動線程。 使用一個簡單的布爾標誌來指示每個循環周圍是否應該實際做任何工作,或者只是睡覺。初始化初始化後,讓Stop()和Start()簡單地控制布爾標誌。由於IsBackground
=應用程序退出時,該線程將被運行時停止並清除。 - 強行中止/加入/中斷/停止上的任何內容,並在Start()上再次重新創建線程,而不是讓線程四處閒逛。
...或者更好/更乾淨的方法來做到這一點?