我目前正在编写一个WPF应用程序,它在App.xaml.cs中执行命令行参数处理(这是必要的,因为Startup事件似乎是获取这些参数的推荐方法).根据我想要退出程序的参数,据我所知,应该在WPF中使用Application.Current.Shutdown()
或者在这种情况下(因为我在当前的应用程序对象中)也可能只是this.Shutdown()
.
唯一的问题是这似乎不正常.在Shutdown()
线路仍然被执行后,我已经逐步调试了调试器和代码,这导致了方法之后的错误,因为我预计应用程序不能存活那么长时间.此外,主窗口(在XAML中的StartupUri属性中声明)仍然被加载.
我已经检查了该方法的文档,但在评论中没有发现任何内容,告诉我不应该在使用期间Application.Startup
或根本不使用它Application
.
那么,那时退出程序的正确方法是什么,i.即 对象中的Startup
事件处理程序Application
?
我有一个运行java应用程序的bat脚本.如果我按下ctrl + c,它会正常终止,调用所有关闭钩子.但是,如果我只关闭bat脚本的cmd窗口,则永远不会调用关闭挂钩.
有办法解决这个问题吗?也许有一种方法可以告诉bat脚本如何在窗口关闭时终止被调用的应用程序?
我有一个添加关闭钩子的方法.我需要测试(通过JUnit)调用钩子中执行的代码:
public void myMethod(){
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
... code to test ...
}
});
}
Run Code Online (Sandbox Code Playgroud)
如何在单元测试中模拟关机?
因此,在最近的一些更改后,我们发现我们最老的应用程序之一有时会在关机时崩溃.这表现为"运行时错误216"消息的形式,或者来自Windows错误报告的消息,表明应用程序已停止工作.该应用程序已经OutputDebugString
在每个回合发出消息,AFAICT我们自己的所有代码都正确执行完成.所有析构函数都被称为所有终结部分和类析构函数,其中没有一个会引发任何异常.
此外,madExcept和FastMM4的完全调试模式似乎都没有什么可抱怨的(尽管这可能是一个错误的结论,因为甚至在这些组件自己的终结代码运行之前就可能发生崩溃).
那么,你会做什么?你会从哪里开始的?
这个问题应该更多地关于这类问题的一般方法,而不是我目前面临的具体实例,所以我故意遗漏细节.请随意询问您是否认为它们可能与调试方法的选择相关,我稍后会添加它们.
Log4j2还使用关闭挂钩来结束它的服务.但是我当然希望在我的应用程序的整个生命周期中记录 - 包括关闭.使用Log4j这没问题.现在似乎不可能.记录关闭,而我的应用程序仍在处理它.有人对我有什么希望吗?
最好的问候马丁
如果没有在Web应用程序中运行,关闭Log4j2的正确方法是什么?我只看到一个noop LogManager.shutdown()
我想在关闭钩子运行时确定进程的退出状态.
我想要一个基于状态代码(0或非零)的逻辑
(例如:如果零则不执行其他非零发送警报电子邮件)
你知道我怎么能得到这些信息吗?
我在C#中有一个控制台应用程序.如果出现问题,我打电话Environment.Exit()
关闭我的申请.在应用程序结束之前,我需要断开与服务器的连接并关闭一些文件.
在Java中,我可以实现一个关闭钩子并通过它注册它Runtime.getRuntime().addShutdownHook()
.如何在C#中实现相同的目标?
关闭Windows 8.1时,Google Chrome会生成错误消息"Google Chrome未正常关闭".如何在不向我提供错误消息的情况下关闭Chrome?
我不必以Google用户身份登录.
google-chrome application-shutdown system-shutdown windows-8.1
我有一个应用程序在其首次启动的活动中启动远程服务.然后,在另一个活动中,用户可以设置应用程序的配置.请注意,第二个活动不受服务约束,我不想绑定它.
现在我的问题是:在更改配置设置后,如何从第二个活动重新启动整个应用程序?
现在,我正在使用onClickListener的按钮:
public void onClick(DialogInterface dialog, int which) {
sauvegarde();
Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName());
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
Run Code Online (Sandbox Code Playgroud)
问题是:它只在不关闭整个应用程序的情况下重新启动当前活动,因此无需重新启动服务
有任何想法吗?
android application-shutdown application-restart android-activity