C# 在此之后应用程序崩溃。在windows 10上关闭
我的C#/WPF/Prism应用程序中遇到了一个可疑问题。我制作了一个方法,在互斥锁的帮助下阻止第二次和更多的执行。这适用于Windows7。当我尝试使用Windows 10运行此应用程序时,应用程序第一次按预期启动,第二次启动有时只会显示我的错误消息,但大多数情况下会显示我的错误消息,单击确定后,会弹出一个Windows对话框,显示“程序已停止工作”。Windows 10系统的事件日志中有一个新的应用程序日志条目C# 在此之后应用程序崩溃。在windows 10上关闭,c#,wpf,windows-10,prism,C#,Wpf,Windows 10,Prism,我的C#/WPF/Prism应用程序中遇到了一个可疑问题。我制作了一个方法,在互斥锁的帮助下阻止第二次和更多的执行。这适用于Windows7。当我尝试使用Windows 10运行此应用程序时,应用程序第一次按预期启动,第二次启动有时只会显示我的错误消息,但大多数情况下会显示我的错误消息,单击确定后,会弹出一个Windows对话框,显示“程序已停止工作”。Windows 10系统的事件日志中有一个新的应用程序日志条目 Faulting application name: application.n
Faulting application name: application.name, version: 0.1.11.0, time stamp: 0x5a01baef
Faulting module name: KERNELBASE.dll, version: 10.0.16299.15, time stamp: 0x2cd1ce3d
Exception code: 0xc000041d
Fault offset: 0x001008b2
Faulting process ID: 0x19bc
Faulting application start time: 0x01d357cfe3c8bc58
Faulting application path:
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report ID: 525f81c7-cccb-49f3-9c25-01c877056b83
Faulting package full name:
Faulting package-relative application ID:
如果在this.shutdown之后添加Messagebox.Show语句,则该过程在Windows 10下运行正常,但这可能不是正确的解决方案
只有当应用程序通过双击在VisualStudio中运行的exe来运行时,才会发生这种情况,并且不会重现这种错误行为。我还附加了一个全局异常处理,它也不会导致此错误
谢谢你帮我找到解决办法
编辑:最小示例
protected override void OnStartup(StartupEventArgs e)
{
// Global exception handling
Application.Current.DispatcherUnhandledException += new DispatcherUnhandledExceptionEventHandler(AppDispatcherUnhandledException);
try
{
// getting the settings
ISettingsRepo _settingsRepo = new SettingsRepo();
if (mutex.WaitOne(TimeSpan.Zero, true))
{
Bootstrapper bs = new Bootstrapper();
bs.Run();
mutex.ReleaseMutex();
}
else
{
var messageText = "nostart";
MessageBox.Show(messageText, System.Windows.Application.Current.Resources["ApplicaionTitle"].ToString(), MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly);
this.Shutdown();
}
}
catch (Exception ex)
{
throw ex;
}
}
尝试此-环境。退出(0) 试试这个环境。退出(0) 考虑发布一个。至少共享相关代码。也就是说,我们只能做出(坏的)猜测。我用一个最小的和剥离的例子编辑它,不知道这是不是问题,但是你的应用程序在第一个开始时永远不会离开<代码> OnStudio事件处理程序直到关闭……考虑发布一个。至少共享相关代码。就目前而言,我们只能做出(不好的)猜测。@Fildor我用一个最小的精简示例编辑了它。我不知道这是否是问题所在,但你的应用程序在第一次启动时将永远不会离开
OnStartup
事件处理程序,直到关闭为止…谢谢-我以前尝试过这个-但都没用汉克斯-我以前尝试过这个-而且也没用