我的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);
}
答案 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;
}