0

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

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

我唯一能想到的就是拥有一个共享的布尔值,该值会在时间到时发生变化。有谁知道如何使用线程计时器和 AutoResetEvent 来做到这一点?

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

您知道实现此效果的更好方法吗?

流程呢?

4

1 回答 1

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并在某个时间间隔调用一个回调。

于 2012-10-09T03:57:01.357 回答