在我的控制台应用程序中,我的代码如下所示
Process DKU = new Process();
DKU.StartInfo.FileName = "MSSQLExecutor.exe";
DKU.Start();
DKU.WaitForExit();
Console.WriteLine("lets move on ");
这工作正常,它会等到 MSSQLExecutor.exe 完成其工作,然后再完成
应用程序继续。
我的问题是,有时 MSSQLExecutor.exe 会崩溃,Windows 默认情况下会显示一个用于结束程序的对话框。那时我的应用程序将永远等待用户单击“关闭”按钮。
我想避免这种情况,因为我的应用程序将作为服务运行,无需用户交互。
该对话框阻止进程存在。
-
If MSSQLExecutor
是您的应用程序,您应该解决问题。
但你可以达到目标(隐藏对话框)。处理Application.ThreadException
and AppDomain.CurrentDomain.UnhandledException
Application.ThreadException +=new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
// log the exception
}
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
// log the exception
}
-
If MSSQLExecutor
不是您的应用程序,您可以停用 Dr. Watson
Dr. Watson 是 Microsoft Windows 操作系统中包含的应用程序调试器。
- 单击“开始”,单击“运行”,在“打开”框中键入 regedit.exe,然后单击“确定”。
- 找到并单击以下注册表项:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug
- 单击 AeDebug 键,然后单击注册表菜单上的导出注册表文件。
- 删除 AeDebug 密钥。
更多信息
- 如何禁用或启用 Windows 版 Dr. Watson http://support.microsoft.com/kb/188296/en-us
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)