1

Stop()メソッドを呼び出すとランダムにNullReferenceExceptionをスローするSystem.Timers.Timerがあります。これはおそらく1日に約4回発生します。この問題が複数のコンピューターで繰り返されているのを見てきました。

void myTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
  if (myTimer != null) //trying to stop the exception here
  {
    myTimer.Stop(); //Null Reference Exception occurs here

    DoStuff();

    myTimer.Start();
  }
}

スタックは次のようになります。

スタック

最も奇妙な部分は、例外の位置から問題なくプログラムをすぐに再開できることです。

4

1 に答える 1

1

これを試して

void myTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
  lock(this) {
  if (myTimer != null) //trying to stop the exception here
  {
    myTimer.Stop(); //Null Reference Exception occurs here

    DoStuff();

    myTimer.Start();
  }
  }
}
于 2013-01-31T16:49:37.583 に答える