如何避免多个消息框连续显示?

时间:2014-10-11 12:21:42

标签: c# wpf messagebox

我的WPF MessageBox有问题,因为互联网连接不可用时。我只需要显示一次消息,但它会多次显示。

 private void Application_Startup(object sender, StartupEventArgs e)
    {
        AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(cc);
    }
    void cc(object sender, UnhandledExceptionEventArgs e)
    {
        Exception ex = e.ExceptionObject as Exception;
        MessageBox.Show(ex.Message, "Uncaught", MessageBoxButton.OK);
    }

1 个答案:

答案 0 :(得分:-2)

简单。
您应该在显示消息框之前确认。

// message box flag.
bool canIShowMessageBox = true;

// for thread lock.
object exLocker = new object();    

void cc(object sender, UnhandledExceptionEventArgs e)
{
   lock(exLocker)
   {
      if (canIShowMessageBox)
         canIShowMessageBox = false;
      else
         return;
   }
   Exception ex = e.ExceptionObject as Exception;
   MessageBox.Show(ex.Message, "Uncaught", MessageBoxButton.OK);

   lock(exLocker)
      canIShowMessageBox = true;
}