【发布时间】:2014-09-30 08:20:13
【问题描述】:
我有一个在 Thread 中调用的方法。这里是方法..
private System.Threading.Thread _thread;
private ManualResetEvent _shutdownEvent = new ManualResetEvent(false);
private void DoWork()
{
while (!_shutdownEvent.WaitOne(0))
{
//Business logic
}
}
现在我在这里开始线程..
_thread = new Thread(DoWork);
_thread.Start();
现在根据我的要求,我想关闭并重新启动线程。为了关闭和重新启动,我正在尝试这段代码。
_shutdownEvent.Set(); // trigger the thread to stop
_thread.Join();
但我认为这不是关闭线程并重新启动它的正确方法..
请帮助我关闭并重新启动线程。 提前谢谢..
【问题讨论】:
-
您使用的是哪个 .NET 框架版本?
-
@YuvalItzchakov .Net4.0
-
@shubhamHegdey 在这种情况下您可以考虑使用 TPL
-
还有其他方法,但我真的不认为你的做法有问题。
-
您是否要取消正在进行的工作并重新启动它?这里发生的唯一iffy 是低级线程代码,但它在功能上似乎是合理的。
标签: c# .net multithreading task-parallel-library