0

「開始」をクリックすると刻み始める5つの異なるJavaScriptタイマーがあり、それぞれが変数timer1、timer2、timer3、timer4、timer5で参照されているとします。

これらのタイマーがそれぞれ配列内にある場合、擬似コードで次のようにする必要があります。

foreach timer in timerarray {
    timer.stop;
    timer.setstoptime(time that it stopped);
}

ここでの問題は、「getstoptime」を取得した場合、タイマーごとに配列を反復処理する必要があるため、すべてのタイマーが停止した時間に対して異なる値を持つことです。すべてのタイマーを追跡し、停止をクリックしたときに停止時間を取得できるようにする方法はありますか?

配列を非常に高速に反復処理する JavaScript では、これが発生する可能性は低いことはわかっていますが、配列を反復処理する必要があるため、各タイマーが停止するまでにわずかな時間差があります。

すべてが同時に実行されるようにする方法を探しています。誰かが何らかのサンプルコードと、これを確実に行うための推奨事項を提供できる場合は、素晴らしいでしょう。

4

1 に答える 1

0

JS を使用しているかどうかにかかわらず、求めていることを実行する方法はありません。スレッドを使用できたとしても、すべてのタイマーが同時に停止することを保証することはできません。

それらすべてに同じ停止時間を持たせたい場合は、ループが開始する前に一度その値を取得してから、すべてのタイマーでその値を明示的に設定してみませんか。

于 2012-07-07T04:46:53.420 に答える