在我的控制台应用程序中,我的代码看起来像
Process DKU = new Process();
DKU.StartInfo.FileName = "MSSQLExecutor.exe";
DKU.Start();
DKU.WaitForExit();
Console.WriteLine("lets move on ");
这工作正常,并且等待直到MSSQLExecutor.exe完成其工作,然后再执行此操作
该应用程序继续。
我的问题是,有时MSSQLExecutor.exe崩溃,并且Windows默认情况下会显示一个对话框以结束程序。届时,我的应用程序将永远等待用户单击“关闭”按钮。
我想避免这种情况,因为我的应用程序将作为服务运行而无需用户交互。
最佳答案
对话框阻止该进程存在。
MSSQLExecutor
是您的应用程序,则应解决此问题。但是您可以达到目标(隐藏对话框)。处理
Application.ThreadException
和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
}
MSSQLExecutor
不是您的应用程序,则可以停用Dr. Watson HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AeDebug
更多信息
关于c# - 如何知道进程崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9131742/