0

次の効果を作成しようとしています。

同時に実行しているスレッドの数があり、タイマーがオフになったときにすべてを停止したい。

私が考えられる唯一のことは、時間切れになると変化するブール値を共有することです。スレッド タイマーと 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 に答える