我有一个包含很多线程的控制台应用程序.有些线程可以监视某些条件,如果它们是真的则终止程序.这种终止可以随时发生.
我需要一个可以在程序关闭时触发的事件,以便我可以清理所有其他线程并正确关闭所有文件句柄和连接.我不确定.NET框架中是否已经内置了一个,所以我在编写自己的框架之前就已经问过了.
我想知道是否有一个事件:
MyConsoleProgram.OnExit += CleanupBeforeExit;
Run Code Online (Sandbox Code Playgroud) 当程序被迫退出时,我试图保存一些数据。
例如,如果 PC 关闭或被任务管理器关闭。
它不是控制台或 Winforms 应用程序。它只是一个没有用户界面的后台进程。
namespace Test
{
class Test
{
static void Main()
{
Application.ApplicationExit += new EventHandler(OnProcessExit);
//some stuff to do here
}
static void OnProcessExit(object sender, EventArgs e)
{
//saving all the important data
Console.WriteLine("Im out of here!");
Environment.Exit(0);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的。我没有遇到任何错误,但我的处理程序没有被调用。