2012-02-11 20 views
1

私のプログラムでは、ループ内の結果を1000msの時間間隔で表示または出力する必要があります。 1000ミリ秒の時間間隔の間ループ内のタイマー?

System.out.println("dec2  "+deck2[g]); 
     System.out.println("dec1  "+deck1[g]); 

:ある答えを印刷するループ内

int delay2= 1000; 
    final Timer timer2 = new Timer(); 
      timer2.schedule(new TimerTask(){ 
    public void run(){} 

     },delay2, 1000); 

: は、タイマーのコードを配置することが可能ですか?

ありがとうございました。

編集:これは機能しますか?

final Timer timer2 = new Timer(); 
     timer2.schedule(new TimerTask(){ 
public void run(){ 
System.out.println("COUNT"+count); 
for(int g = 0;g<e+1;g++) 
{ 

    System.out.println("dec2  "+deck2[g]); 
    System.out.println("dec1  "+deck1[g]); 

} 
} 
    },delay2, 1000); 

EDIT2:これは?

long t = new Date().getTime(); // time now in millies 
do { 
    for(g = 0;g<e+1;g++) 
    { 
    final long now = new Date().getTime(); 
    if(now - t >= 1000) { 
System.out.println("dec2  "+deck2[g]); 
System.out.println("dec1  "+deck1[g]); 
     t = new Date().getTime(); // reset reference time 
    } 
} 
count--; 
} while(count==0); 
+0

可能複製(http://stackoverflow.com/questions/9238830/for-loop-inside-a-timer-not-working) –

答えて

1

あなたはこのような何かを行うことができ、パフォーマンスへの影響を気にしない場合。

long t = new Date().getTime(); // time now in millies 
do { 
    // do something here 
    // ... 
    final long now = new Date().getTime(); 
    if(now - t >= 1000) { 
     // do your logging 
     // ... 
     t = new Date().getTime(); // reset reference time 
    } 
} while(someCondition); 
[ループのためにタイマーが動作していない内]の
+0

long t =新しいDate()。getTime(); //時間の単位はミリ秒 do { for(g = 0; g = 1000){ t = new Date()。getTime(); //基準時刻をリセットする } 件カウント; } while(count == 0);私はこれを試しましたが、うまくいきませんでした。私が間違っていたことを教えてもらえますか?(まだJavaを学んでいます..) –

+0

働いていないということはどういう意味ですか?ループは終了していますか(gとcountの初期値は何ですか?) – Stefan

+0

gとcountの初期値はzero.countが値に達するまでプログラムの別の部分でインクリメントされます。EDIT: "logging"という用語は理解できませんでしたが、ここに何かする "私はループを挿入し、ループはif(now-t> = 1000)の条件の後で終了します。system.out.printlnステートメントはif(now-t> = 1000)の内部にあります。ここで間違っていますか?... –

0

いいえ「g」とインスタンス変数を作成し、時間のrun()メソッド内で使用して、必要な処理を実行できます。

ような何か:

private int g = 0; 

private startTimer() 
{ 
    final Timer timer = new Timer(); 

    timer.schedule(new TimerTask(){ 
     public void run(){ 
      g++;     // Incrementing the counter. 
      System.out.println("dec2  "+deck2[g]); 
      System.out.println("dec1  "+deck1[g]); 

      // Stop the timer when done. 
      if (g >= e + 1) timer.cancel(); 
     } 
    }, delay, 1000); 
} 
+0

うう、私はドン」あなたを得る。あなたは説明できますか? –

関連する問題