仅仅通过一个信号量来随意控制其他线程的运行状态是不现实的。
不过可以通过控制信号量的数量来限制同时访问资源的线程数,而且当线程在等待信号时,它是暂停的。只有信号到达,线程才继续运行。
问题补充的解答: 可以通过给线程命名获得该线程的实例,但这种方法并不安全。需要人为控制线程的命名,做到其名称不重复才可以。最安全的方法使用线程 ID,这是唯一的。或者使用 Thread.CurrentThread 来达到目的。
假如使用给线程命名的方案,可以通过 Thread thread = new Thread(委托);
thread.Name = "线程名称";。
再次重申,这种方案不安全,必须人为严格控制线程名称不重复。