2011-01-18 4 views
0

응용 프로그램 던지는 예외

new System.Threading.Timer(state => 
{ 
    var query = "Select Caption from Win32_OperatingSystem"; 
    var objectQuery = new WqlObjectQuery(query); 
    var searcher = new ManagementObjectSearcher(objectQuery); 
    searcher.Get(); 
    //unreachable code 
}, null, 0, 1000); 

예외를 던지는없이 즉시 내 응용 프로그램을 종료 다음 코드없이 종료됩니다. 새 콘솔 프로젝트에이 행을 복사하여 붙여 넣으면 문제를 재현 할 수 없을 수도 있습니다. 위의 코드는 내 Windows 서비스의 일부분이며 문제의 원인 일 가능성이 큽니다. 위의 코드는 단위 테스트에서 예외를 throw하지 않고 정상적으로 실행됩니다. 문제가 발생하기 전에 마지막으로 실행 된 줄이 항상 같지는 않습니다. 어떻게해야합니까?

답변

0

나는 이보다이다

new Thread(delegate() 
    { 
     Thread.Sleep(Settings.Default.CheckDelay); 
     while (isRunning) 
     { 
      TimerCallback(null); 
      Thread.Sleep(Settings.Default.CheckInterval); 
     } 
    }).Start(); 

에 의해

this.timer = new Timer(
    TimerCallback, 
    null, 
    Settings.Default.CheckDelay, 
    Settings.Default.CheckInterval); 

교체,하지만 내 undebuggable 문제를 해결

관련 문제