2011-12-13 76 views
2

当我在MSDN上看到线程主题时,我发现如果一个线程被终止了,它不能再次重新启动,如果我们试图这样做,我们会得到一个异常。 Over Here有什么办法可以让我重新启动一个线程?

我想知道是否有任何方法可以让我们重新启动线程来完成相同的工作,MSDN对此是否保持沉默?

谢谢

+0

在java中,你会得到'Executor'框架,它与'tasks'一起工作,并且帮助程序员避免大部分时间管理线程。猜猜,.NET必须有类似的东西。 –

+0

那么,如果一个线程运行的用户代码必须多次执行相同的工作,那么通常使用一个循环,即。不要让线程终止。操作系统提供了足够的机制来让线程等待更多的工作,(因此ThreadPool是线程等待工作的地方)。 –

回答

3

不,没有办法重新启动线程。另一方面,如果您还记得创建线程时给出的ThreadStartParameterizedThreadStart,则可以使用相同的委托启动另一个线程。请注意,这将从头开始再次启动委托 - 如果您试图从线程所在的位置“继续前进”,则需要将该状态存储在某处。

我不能说我曾经想过这样做 - 你的用例是什么?可能有更好的方法。

+0

你的意思是“如果你试图从线程所在的地方”继续前进“,那么你需要在某个地方存储该状态。”以及如何做到这一点? – Bibhu

+0

@Bibhu:那取决于你想要做什么。例如,如果您正在处理项目列表,则需要将该列表提供给其他代码,以便知道您有多远。 –

相关问题