保持线程空闲或杀死它们/重新启动它们?

Bra*_*don 4 c# multithreading

伪情况:有一个类(比方说BackgroundMagic),它有Start()Stop()方法.这个类中的工作由一个单独的线程完成,并且每X毫秒只是一个短循环.

在管理停止/启动方面,哪些选项更好?无法决定走哪条路.

  1. 第一次调用Start()时,使用IsBackground= true 初始化并启动线程.使用一个简单的bool标志来指示每个循环是否应该实际做任何工作,或只是睡觉.初始化初始化后,让Stop()和Start()简单地控制bool标志.IsBackground当应用程序退出时,线程将被运行时停止并清除,因为= true.
  2. 强制中止/加入/中断/停止任何内容,并在Start()上再次重新创建线程,而不是让线程处于四处.

......或者更好/更清洁的方式吗?

Dav*_*kle 9

都不是!使用线程池!