1


0

SwingのTimerTasks

私は次のことを行う必要があるメッセージ確認アプリケーションを作成しようとしています:a)すべての新しいメッセージをメッセージキューに追加します。 Arraylistを使用してメッセージキューを作成するだけです。 b)タイマータスクに通知して、メッセージに対して50秒以内に確認応答を期待します。そのため、50秒スリープするか、確認応答を受信したときに起動します。

これを実装するためのベストプラクティスは何ですか?

ありがとう

2 Answer


1


私はあなたのニーズが何であるか明確ではありません。 これはSwingまたはタイマーと何の関係がありますか? ここではどのようなスレッドを扱っていますか? いくつかの仮定を行い、いくつかのことを提案します。

メッセージをキューに入れて、応答が受信されるまで、または最大50秒待ちます。 BlockingQueueをチェックアウトする必要があります。 これはスレッドセーフであり、別のスレッドが何かを入れるのを特定の時間待つことができます。 これは、メッセージ/肯定応答の問題に役立つようです。

BlockingQueue queue = new LinkedBlockingQueue();

// put a message in the queue
queue.put( msg );

// have a thread wait on the queue until something is available in it
MSG msg = queue.poll( 50, TimeUnit.SECONDS );

より具体的なヘルプを得るには、問題に関する詳細が必要です。


0


特定の間隔の後に更新が必要なメカニズムが必要だと思ったので、次のような間隔の要件に従ってスレッドを使用してスリープを設定できます:

public void run() {

    while (Start == true) {
        getMessage();      //yourmethod();
        try {
            Thread.sleep(50);
        } catch (InterruptedException ie) {
            stop();
        }
    }
}