这是我的问题:我有一堆线程,每个线程都会完成它的工作,然后在线程完成作业后第一次返回堆栈,如果我想从堆栈中弹出它再次运行:将出现异常,表示此线程正在运行或终止无法重新启动....是否允许运行该线程多次?谢谢 ...
您不能多次运行一个线程.线程完成后,就完成了.
如果要重用线程,最好的选择是使用Framework的ThreadPool.它将自动处理你的"工作"并将其推送到一个免费的线程,调度和排队任务,因为你正在使用所有可用的线程而无法运行.
听起来像你正在尝试实现自己的线程池.请尝试使用System.Threading.ThreadPool.
接下来,将您转换Stack{Thread}为Stack{Action}.从堆栈弹出项目,使用内置线程池运行它们,然后根据需要将项目返回到堆栈.