停止 C# 中的调试事件

本文关键字:调试 事件 停止 | 更新日期: 2023-09-27 18:37:10

当应用程序关闭时,即使调试停止,我如何或在哪里可以运行命令?

我需要在任何退出中执行命令,即使用户是开发人员并单击Visual Studio上的"停止调试"按钮。

我尝试

Application.ApplicationExit += new EventHandler(this.OnApplicationExit);

但它不起作用。也许我错了,或者不是事件。

我正在使用Winforms,而不是,在表单关闭上不能成为事件。

我使用的是Visual Studio 2005 Net Framework 2.0(根据客户要求),但仅供参考。

也许我可以重写这个吗?

public static void Exit();

停止 C# 中的调试事件

问题是"停止调试"函数将完全停止应用程序 - 因此该应用程序中不再运行代码。

实现此目的的唯一方法是监视正在外部调试的进程,并在代码已停止时执行代码。

根据[MSDN]:

如果程序"停止调试"将终止正在调试的进程 是从 Visual Studio 启动的。

但是,您可以使用 Visual Studio 加载项实现所需的内容。

根据MSDN:http://msdn.microsoft.com/en-us/library/system.windows.forms.application.applicationexit%28v=vs.80%29.aspx

// Handle the ApplicationExit event to know when the application is exiting.
Application.ApplicationExit += new EventHandler(this.OnApplicationExit);
private void OnApplicationExit(object sender, EventArgs e) {
// When the application is exiting
}

这是您实施的吗?

您可以使用"挂起"和"恢复"布局。此外,如果你有一个装满东西的组合盒,它会减慢你的速度。我还会考虑进入"解决方案资源管理器",然后右键单击并选择底部的"属性"。选择"配置属性",然后选择"发布"和"调试"。这将大大缩短表单加载时间。此链接将解释

试试这个:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace Prueba {
    static class Program {
        [STAThread]
        static void Main() {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
            //This is the magic line code :P
            AppDomain.CurrentDomain.ProcessExit += new EventHandler(CurrentDomain_ProcessExit);
        }
        static void CurrentDomain_ProcessExit(object sender, EventArgs e) {
            MessageBox.Show("");
        }
    }
}

参考资料在这里(Fredrik Mörk):.NET 控制台应用程序退出事件