2016-06-23 16 views
0

これは私が達成しようとしているシナリオです
私のプログラムは、その間隔が10秒(10000ms)に設定されているタイマーを持っています。
たとえば、特定のファイルが存在するか変更された場合など、特定の条件を確認したい場合は、それに応じてtimer.intervalを変更します。
は、ここに私のコードです:なぜ実行時にTimer.inetervalを変更できないのですか?

static void Main(string[] args) 
    { 
     timer.Interval =10000; 
     timer.Elapsed += new System.Timers.ElapsedEventHandler(WriteToConsole); 
     timer.Start(); 
     if(fileExists(@"C:\temp\1.txt")) 
     { 
      timer.Interval =20000; //20 seconds 
     } 
     else if(fileExists(@"C:\temp\2.txt")) 
     { 
      timer.Interval =15000; // 15 seconds 
     } 

    } 

    public static void WriteToConsole(object sender, System.Timers.ElapsedEventArgs args) 
    { 
     Console.WriteLine(DateTime.UtcNow); 

    } 

しかし、私はそれがする必要があるとして、それは動作しません。
私はすでにこれらを読んでいますが、解決策を見つけることができませんでした。
1 - 2 - あなたの間隔を指定するか、あるいはタイマーを停止し、後で再起動した後3

+2

インターバルを変更する前にタイマーを「停止」してから、もう一度「開始」しようとしましたか?タイマーの実行中に間隔を変更した場合に例外が発生することは驚くことではありません – Sidewinder94

+1

何が問題なのですか?このコードの動作は何ですか? – Sidewinder94

+1

'else if(@" C:\ temp \ 2.txt ")'がコンパイルされないので、これは明らかに*あなたのコードではありません。 [mcve]を入力してください。 –

答えて

1

はあなたのスタートを書いてみてください。

+0

が停止してタイマーを開始しました。 –

+0

Great @JeremyM :) –

関連する問題