C# 使用c关闭winforms中的整个表单#

C# 使用c关闭winforms中的整个表单#,c#,.net,winforms,C#,.net,Winforms,当应用程序关闭时,关闭整个windows应用程序窗体的最佳方式是什么?显然,在我退出应用程序后,应用程序仍在运行。根据Bali的评论,使用: Application.Exit() 详情见(重点矿): Exit方法停止所有线程上所有正在运行的消息循环,并 关闭应用程序的所有窗口。这种方法不适用 必须强制应用程序退出。退出方法是 通常从消息循环中调用,并强制运行以返回。 要仅退出当前线程的消息循环,请调用ExitThread 根据巴厘岛的评论,使用: Application.Exit() 详情见

当应用程序关闭时,关闭整个windows应用程序窗体的最佳方式是什么?显然,在我退出应用程序后,应用程序仍在运行。

根据Bali的评论,使用:

Application.Exit()
详情见(重点矿):

Exit方法停止所有线程上所有正在运行的消息循环,并 关闭应用程序的所有窗口。这种方法不适用 必须强制应用程序退出。退出方法是 通常从消息循环中调用,并强制运行以返回。 要仅退出当前线程的消息循环,请调用ExitThread


根据巴厘岛的评论,使用:

Application.Exit()
详情见(重点矿):

Exit方法停止所有线程上所有正在运行的消息循环,并 关闭应用程序的所有窗口。这种方法不适用 必须强制应用程序退出。退出方法是 通常从消息循环中调用,并强制运行以返回。 要仅退出当前线程的消息循环,请调用ExitThread


如果在应用程序的主窗体关闭后应用程序仍在运行,则会有一些线程挂起,而它的工作尚未完成。您应该识别它,并确保它优雅地关闭。完成后,当您关闭主窗体时,您的应用程序进程应该会很好地结束,而无需拿出武器并射击它。

如果在关闭应用程序的主窗体后应用程序仍在运行,则会有一些线程挂起,而它的工作没有完成。您应该识别它,并确保它优雅地关闭。完成后,当您关闭主窗体时,您的应用程序进程应该会顺利结束,而无需拿出武器并射击它。

这不是关闭程序的最佳方式,但如果您只想完全结束进程,只需在自身上运行
process.Kill()
。如果有任何正在运行的线程尚未完成,那么最好先优雅地关闭它们。如果你不在乎什么还没有完成,这会起到作用:

foreach (Process p in Process.GetProcesses()) 
{ 
    if (p.ProcessName.Contains("appname")) 
    { 
        p.Kill();
    } 
}

这不是关闭程序的最佳方式,但如果您只是想完全结束进程,只需在自身上运行
process.Kill()
。如果有任何正在运行的线程尚未完成,那么最好先优雅地关闭它们。如果你不在乎什么还没有完成,这会起到作用:

foreach (Process p in Process.GetProcesses()) 
{ 
    if (p.ProcessName.Contains("appname")) 
    { 
        p.Kill();
    } 
}

理想情况下,你应该根据Fredkrik的回答找出为什么你的应用程序仍然挂在那里。然而,如果你想强制退出你的应用程序,这就是你想要的。仅退出当前消息泵(尽管必须承认,除非调用Application.Run多次,否则您将只能打开)

docco:

Environment.Exit方法 终止此进程并向基础操作系统提供指定的退出代码

Application.Exit方法
通知所有消息泵它们必须终止,然后在消息处理后关闭所有应用程序窗口。

理想情况下,您应该根据Fredkrik的回答找出应用程序仍然挂起的原因。然而,如果你想强制退出你的应用程序,这就是你想要的。仅退出当前消息泵(尽管必须承认,除非调用Application.Run多次,否则您将只能打开)

docco:

Environment.Exit方法 终止此进程并向基础操作系统提供指定的退出代码

Application.Exit方法
通知所有消息泵它们必须终止,然后在处理消息后关闭所有应用程序窗口。

application.Exit()显示某些errorCollection已修改;枚举操作不能执行。这个错误coming@saravanakumar:能否显示关闭应用程序的代码?private void Masterdetailsentry_FormClosing_1(对象发送者,FormClosingEventArgs e){if(MessageBox.show(“是否要关闭窗口?”,“关闭窗口”,MessageBoxButtons.YesNo)=DialogResult.No){e.Cancel=true;}否则{Adminform ad=new Adminform();ad.Show();}}}Application.Exit()显示某些errorCollection已修改;枚举操作可能无法执行。此错误coming@saravanakumar:能否显示关闭应用程序的代码?private void Masterdetailsentry_FormClosing_1(对象发送者,FormClosingEventArgs e){if(MessageBox.show(“是否要关闭窗口?”,“关闭窗口”,MessageBoxButtons.YesNo)=DialogResult.No{e.Cancel=true;}否则{Adminform ad=new Adminform();ad.Show();}