2011-01-18 25 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サービスの一部であり、問​​題の原因として考えられます。上記のコードは例外をスローせずに正常に動作するユニットテストによって実行されます。 問題が発生する前に最後に実行された行は必ずしも同じではありません。 どうすればよいですか?

答えて

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問題を解決し

関連する問題