
我们有不同的方法来杀死正在运行的C#程序。
ctrl + C;
任务栏,然后右键单击它的图标,然后select“closures”popup;
任务pipe理器,select其可执行文件名,然后点击结束进程;
控制台窗口,使用kill命令;
也许更多。
我在这里问的是如何在我的C#程序中处理它们,以保证我的C#程序可以正常退出。 我知道如何陷阱CTRL + C,但不要其他人。 你可以帮我吗? 谢谢,
VB中有“协同”function吗?
.Net核心命令行应用程序| Process.Start()在一些机器上运行,但不在其他机器上运行
在“stream程布局面板”内为“面板中的控件”设置锚点
Shell Vs Process.start执行外部应用程序
我可以在windows上加载一个32位DLL到64位进程吗?
如何区分超链接和本地执行的任何东西?
linux上Data Protection API的等价物
windows进程和它连接到的IP地址
windows服务不能在冷启动时启动
寻找花式窗体
最好的保证你在代码退出运行是最后的声明。
但请注意,当你使用这个机制时,你的程序将不得不在try块中运行。
我相信, finally在finally的块没有执行的唯一时间是在:
一个StackOverflowException ;
损坏的状态异常 (来自.NET 4);
通过任务管理器强制终止(非托管进程kill);
整个系统崩溃(例如拆除电源线)。
请参阅使用.NET Framework的可靠性功能运行代码以进行深入分析。
方案2基本上调用Application.Exit(),这应该相当于正常关闭与进程关联的所有线程。 它还会触发可用于执行任何额外清理的事件。
3和4可以通过将处理程序附加到WinForms应用程序的Application.ThreadException事件来“困住”。 当任何异常即将被抛出程序以被运行时处理(这将终止你的程序集的执行和清理沙箱)时,这个事件被触发。 然而,在这一点上,除了向事件日志写入内容或清理任何静态内容(如IoC容器或存储库)之外,您应该做的事情非常少,即使这样做有问题,因为如果其中一个对象导致了异常,您可以非常轻松地试图处理最后一个例外时抛出另一个例外。
基本上,如果你的用户使用“kill”或者“End Process”来关闭你的应用程序,那么有一些非常错误的东西,你可能应该解决用户为什么要这样做的根本原因。
不能陷阱。 你不能避免杀死一个程序。 但是你总是可以订阅杀人。 只是想象当人们拉动电源插头时你怎么可以陷入困境
.NET 2.0
订阅AppDomain.CurrentDomain.ProcessExit事件
.NET 3.5
Application.Exit事件
有用的链接
AppDomain.CurrentDomain.ProcessExit和清理
如何检测应用程序何时终止?
如何检测主线程何时终止?
总结以上是内存溢出为你收集整理的如何杀死一个正在运行的程序,以及如何去捕捉它们?全部内容,希望文章能够帮你解决如何杀死一个正在运行的程序,以及如何去捕捉它们?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)