여기 달성하고자하는 시나리오입니다.
내 프로그램의 간격이 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
간격을 변경하기 전에 타이머를 '정지'하려고 했습니까? 그런 다음 다시 시작하십시오. 타이머 실행 중 간격을 변경하면 예외가 발생한다는 것은 놀랄 일이 아닙니다. – Sidewinder94
그리고 작동하지 않는 것,이 코드의 동작은 무엇입니까? – Sidewinder94
'else if (@ "C : \ temp \ 2.txt")'가 컴파일되지 않기 때문에 이것은 분명히 * 당신의 코드가 아닌 것은 도움이되지 않습니다. [mcve]를 입력하십시오. –