时间到时C#进程和线程终止 - 可等计时器

时间:2012-10-09 02:50:36

标签: c# multithreading process timer

我正在尝试创建以下效果:

我有x个线程同时运行,我希望它们在计时器关闭时停止。

我唯一能想到的就是拥有一个共享的布尔值,该值随时间的推移而变化。有没有人知道如何使用线程计时器和AutoResetEvent?

我很难找到如何使用Autoreset事件...

你知道一种更好的方法来实现这种效果吗?

流程怎么样?

1 个答案:

答案 0 :(得分:0)

不是共享一个布尔值,而是使用ManualResetEvent并让每个线程等待它。

private static void ThreadDelegate(object state)
{
    object[] stateArray = (object[])state;
    ManualResetEvent resetEvent = (ManualResetEvent)stateArray[0];

    //Do some work.
    ...

    resetEvent.WaitOne();
}

这将阻止线程,直到你调用resetEvent.Set();我想这个问题的最佳答案实际上取决于你如何构建你的代码。我建议的内容取决于//Do some work位执行某些操作,例如创建Timer并在某个时间间隔内调用回调。