0

みんな。

カスタムタイマーベースのセッションのようなものを実装しています。start()、pause()、resume()、stop()を持つシングルトンクラスです。私が達成したいのは、セッションのタイムアウトを設定することです。たとえば、pause() が呼び出され、20 秒後に resume() が呼び出されない場合、stop() を呼び出してそのセッションを終了したいとします。

これを実装する方法はありますか?

ありがとう。

編集:

実際にはタイマーではなく、次のようなストップウォッチ タイマーに似ています。

public class MyTimer{
    private long startTime;
    private long endTime;

    public MyTimer getInstance(){//singleton}

    public void start(){//}
    public void stop(){//}
    public void resume(){//}
    public void pause(){//}
}

シングルトン

4

1 に答える 1

0

タイムアウトするすべてのスレッドにタイマーを使用するか、次のいずれかを行います。

  • すべてのスレッドに独自のタイムアウト カウンターを持たせる
  • 別のスレッドで、定期的に (タイマーを介して) スレッドを繰り返し、最後のタイマー リセット アクションからの秒数を探します。
  • スレッドの時間がなくなるたびにスレッドを stop() し、それ以外の場合は秒数を増やします

それでも、スレッドに stop()-ping を実行すると、あらゆる種類の問題が発生する可能性があります。シグナルを定期的にチェックし、シグナルを「停止する必要がある」に設定して、スレッド自体を終了させることをお勧めします。

于 2013-03-05T10:29:15.170 に答える