2016-06-23 2 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

그레이트 @JeremyM :) –

관련 문제