2012-04-06 21 views
0

あらかじめ定義された時間が経過した後にコードを繰り返し実行しようとしています。スレッドを使って物事を混乱させたくありません。下のコードは良い方法ですか?コード実行を繰り返す

Stopwatch sw = new Stopwatch(); // sw constructor 
EXIT: 
    // Here I have my code 
    sw.Start(); 
    while (sw.ElapsedMilliseconds < 100000) 
    { 
     // do nothing, just wait 
    } 

    System.Media.SystemSounds.Beep.Play(); // for test 
    sw.Stop(); 
    goto EXIT; 
+2

良い例:)をする方法がわからない場合は簡単にタイマーを作成する方法を紹介したいです練習;) – sll

答えて

2

あなたはオデッドが提案どのようなタイマーを使用することができます。

public partial class TestTimerClass : Form 
{ 
    Timer timer1 = new Timer(); // Make the timer available for this class. 
    public TestTimerClass() 
    { 
     InitializeComponent(); 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     timer1.Tick += timer1_Tick; // Assign the tick event 
     timer1.Interval = 1000; // Set the interval of the timer in ms (1000 ms = 1 sec) 
     timer1.Start(); // Start the timer 
    } 

    void timer1_Tick(object sender, EventArgs e) 
    { 
     System.Media.SystemSounds.Beep.Play(); 
     timer1.Stop(); // Stop the timer (remove this if you want to loop the timer) 
    } 
} 

編集:どれだけあなたが悪いの

4

代わりにラベルやStopWatchタイマーを使用してください。あなたは忙しい待っている、そのタイトなループでCPUを縛っている。

タイマーを起動して(100000ミリ秒)発動する間隔を与えてから、Tickイベントのイベントハンドラーでコードを実行します。

MSDNマガジンのComparing the Timer Classes in the .NET Framework Class Libraryを参照してください。