【问题标题】:How to run code before program exit? [duplicate]如何在程序退出前运行代码? [复制]
【发布时间】:2011-02-03 01:26:37
【问题描述】:

我有一个小控制台 C# 程序,例如

Class Program 
{ 
    static void main(string args[]) 
    {
    }
}

现在我想在 main() 退出后做一些事情。我试图为 Class Program 编写一个解构器,但它从未被击中。

有人知道怎么做吗?

非常感谢

【问题讨论】:

    标签: c# exit


    【解决方案1】:

    试试AppDomainProcessExit事件:

    using System;
    class Test {
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.ProcessExit += new EventHandler (OnProcessExit); 
            // Do something here
        }
    
        static void OnProcessExit (object sender, EventArgs e)
        {
            Console.WriteLine ("I'm out of here");
        }
    }
    

    【讨论】:

    • 我的回答不正确,这是最好的办法。
    • AppDomain.ProcessExit 不保证调用http://blogs.msdn.com/b/jmstall/archive/2006/11/26/process-exit-event.aspx
    • 当然,'粗鲁地'杀死进程不会给执行 ProcessExit 的机会。因此“粗鲁”:-)
    • 点击窗口右上角的 X 按钮可能会“粗鲁”地终止进程,任何人都不知道。
    • 即这个答案在很多情况下完全没用。
    猜你喜欢
    • 2023-02-22
    • 2011-08-10
    • 2016-12-23
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多