假情况:有一个班级(比方说BackgroundMagic
),它有Start()
和Stop()
方法。此类中的工作由单个线程完成,并且每X毫秒只是一个短循环。保持线程空闲或杀死它们/重新启动它们?
就管理停止/启动而言,哪个选项更好?无法决定走哪条路。
- 第一次调用Start()时,使用
IsBackground
= true初始化并启动线程。 使用一个简单的布尔标志来指示每个循环周围是否应该实际做任何工作,或者只是睡觉。初始化初始化后,让Stop()和Start()简单地控制布尔标志。由于IsBackground
=应用程序退出时,该线程将被运行时停止并清除。 - 强行中止/加入/中断/停止上的任何内容,并在Start()上再次重新创建线程,而不是让线程四处闲逛。
...或者更好/更干净的方法来做到这一点?