C# Application.Exit()-关闭表单后应用程序仍在运行

C# Application.Exit()-关闭表单后应用程序仍在运行,c#,forms,exit-code,formclosing,C#,Forms,Exit Code,Formclosing,我有一个游戏应用程序,当游戏窗体关闭时,总会弹出一个主菜单。。因此,当用户关闭主菜单窗体时,所有应用程序都应该停止运行。我正在尝试处理主菜单和do Application.Exit()的Form_Closed事件。但是,即使所有表单都已关闭,该应用程序仍在运行,我也必须手动停止它 这是我在游戏表单和主菜单表单中关于结束的代码: 以游戏形式: private void GameForm_FormClosing(object sender, FormClosingEventArgs e) {

我有一个游戏应用程序,当游戏窗体关闭时,总会弹出一个主菜单。。因此,当用户关闭主菜单窗体时,所有应用程序都应该停止运行。我正在尝试处理主菜单和do Application.Exit()的Form_Closed事件。但是,即使所有表单都已关闭,该应用程序仍在运行,我也必须手动停止它

这是我在游戏表单和主菜单表单中关于结束的代码:

以游戏形式:

private void GameForm_FormClosing(object sender, FormClosingEventArgs e)
{
    DialogResult dialogResult = MessageBox.Show("Are you sure you want to close this game?", "Exit Game", MessageBoxButtons.YesNo);

    if (dialogResult == DialogResult.Yes)
    {
        this.Hide();   // hide the Game Form

    }
    else if (dialogResult == DialogResult.No)
    {
        e.Cancel = true;    // cancel form closure
    }

}

private void GameForm_FormClosed(object sender, FormClosedEventArgs e)
{
    MainMenu menu = new MainMenu();
    menu.Show();
}
在主菜单中:

private void MainMenu_FormClosed(object sender, FormClosedEventArgs e)
{
    Application.Exit();
}

我是做错了什么,还是有什么需要补充的?

考虑到您正在谈论的是游戏应用程序,您可以利用外部资源或一些游戏引擎。退出应用程序之前,请确保释放/处置/清理应用程序中使用的资源


例如,为了跟踪打开的句柄,可以使用

是否有线程在运行


除非进行设置,否则在所有线程完成之前,应用程序不会退出“

请您提供不完全有效的内容好吗?:)一切正常。。即使我关闭表单,应用程序也会继续运行!我必须手动停止它!我仅有的外部资源是图像。。。在我的表格结束活动中,我该如何处置这些资源?是的!请确保处置从文件中读取的所有图像对象。这肯定是一个原因。我尝试了以下方法:private void main menu_FormClosing(object sender,FormClosingEventArgs e){Dispose();}但仍然:/Not Dispose该表单,而是Dispose该应用程序中创建的任何
图像
对象。噢。。我不可能把它们一起处理掉?我必须一个接一个地处理所有的资源?谢谢你抽出时间来提格兰。。我对这样的应用程序还是新手!不。。没有线程正在运行。。如果我在用户单击“关闭”时隐藏其他表单,会有什么不同吗?