本人现在做了一个程序1放在工控机,由于程序可能会出现意外的关闭,或本身有BUG导致关闭,然而本人不想让其关闭。
所以,本人随便用控制台,搞了一个开机自启动的程序2,用于监控进程,假如进程中没有本人的程序1,那么,本人就让程序2启动程序1.。
现在问题来了,本人手动关闭程序1的时候,程序2是能启动程序1的。
但是,本人故意让程序1中产生BUG,那么出现图中这个窗口,程序1还没有完全退出。所以,能想到的思路是,怎么样让程序1出BUG时,不要出现这个窗口。
或,高手们能否有更好的解决办法?
所以,本人随便用控制台,搞了一个开机自启动的程序2,用于监控进程,假如进程中没有本人的程序1,那么,本人就让程序2启动程序1.。
现在问题来了,本人手动关闭程序1的时候,程序2是能启动程序1的。
但是,本人故意让程序1中产生BUG,那么出现图中这个窗口,程序1还没有完全退出。所以,能想到的思路是,怎么样让程序1出BUG时,不要出现这个窗口。
或,高手们能否有更好的解决办法?
解决方案
30
在你的APP.xaml文件里面加上DispatcherUnhandledException=”Application_DispatcherUnhandledException”事件
<Application x:Class="MagicMirror.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" StartupUri="WelcomeWindow.xaml" DispatcherUnhandledException="Application_DispatcherUnhandledException"> </Application>
事件响应函数在App.xaml.cs文件里面,添加
public partial class App : Application { private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) { Helper.Loger.WriteLog("出现未能捕获的异常", "TargetSite:" + e.Exception.TargetSite + "\r\n" + "StackTrace:" + e.Exception.StackTrace + "\r\n" + "Message:" + e.Exception.Message); MessageBox.Show("出现未能捕获的异常!" + e.Exception.Message, "错误", MessageBoxButton.OK, MessageBoxImage.Error); // Signal that we handled things--prevents Application from exiting e.Handled = true; } }