我可以多次运行Thread吗?

Han*_*any 0 c# multithreading

这是我的问题:我有一堆线程,每个线程都会完成它的工作,然后在线程完成作业后第一次返回堆栈,如果我想从堆栈中弹出它再次运行:将出现异常,表示此线程正在运行或终止无法重新启动....是否允许运行该线程多次?谢谢 ...

Ree*_*sey 5

您不能多次运行一个线程.线程完成后,就完成了.

如果要重用线程,最好的选择是使用Framework的ThreadPool.它将自动处理你的"工作"并将其推送到一个免费的线程,调度和排队任务,因为你正在使用所有可用的线程而无法运行.


Jul*_*iet 5

听起来像你正在尝试实现自己的线程池.请尝试使用System.Threading.ThreadPool.

接下来,将您转换Stack{Thread}Stack{Action}.从堆栈弹出项目,使用内置线程池运行它们,然后根据需要将项目返回到堆栈.