我有一个方法void DoWork(object input)
需要大约5秒钟才能完成。我已经阅读Thread
比ThreadPool
更适合这些较长的操作,但我遇到了问题。主题:如何在线程完成后重新启动?
我点击一个按钮,它调用threadRun.Start(input)
它运行并完成罚款。我再次点击按钮,收到以下异常:
Thread is running or terminated; it cannot restart.
你能不能“再利用”主题?我应该使用ThreadPool吗?与ThreadPool相比,Thread为什么“更适合更长时间的操作”?如果你不能重用一个线程,为什么要使用它(即它提供了什么优点)?
我刚刚查了我的一些代码,每次我重新创建线程我需要重用它。我这样做是因为我的代码中也出现了完全相同的错误。在我的情况下,这样做并不昂贵,所以我没有进一步调查。 – ChrisF 2012-03-07 22:41:48
对于螺纹VS线程池检查此[计算器帖] [1] [1]:http://stackoverflow.com/questions/230003/thread-vs-threadpool – 2012-03-07 22:45:51