关于程序出BUG后重启问题

.Net技术 码拜 9年前 (2016-06-03) 1299次浏览
本人现在做了一个程序1放在工控机,由于程序可能会出现意外的关闭,或本身有BUG导致关闭,然而本人不想让其关闭。
所以,本人随便用控制台,搞了一个开机自启动的程序2,用于监控进程,假如进程中没有本人的程序1,那么,本人就让程序2启动程序1.。
现在问题来了,本人手动关闭程序1的时候,程序2是能启动程序1的。
但是,本人故意让程序1中产生BUG,那么出现图中这个窗口,程序1还没有完全退出。所以,能想到的思路是,怎么样让程序1出BUG时,不要出现这个窗口。
或,高手们能否有更好的解决办法?关于程序出BUG后重启问题
解决方案

30

引用:
Quote: 引用:
Quote: 引用:
Quote: 引用:

使用Application.DispatcherUnhandledException 和 AppDomain.CurrentDomain.UnhandledException事件来捕获未知的异常,你可以参考下面的文章。
http://blog.csdn.net/libby1984/article/details/51580839

问题是“通过处理Application.DispatcherUnhandledException ”不知在哪里捕获

你是用的Winform还是WPF,假如是winform的话,参考下面的文章
http://www.cnblogs.com/springSky/p/3413638.html

本人用的是WPF

在你的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;
        }
    }

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于程序出BUG后重启问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)