以下代码不会退出应用程序.如何退出应用程序并确保所有正在运行的线程都已关闭?

foreach (Form form in Application.OpenForms)
{
    form.Close();
}
Application.Exit();

推荐答案

您不会在代码中显示任何线程的使用,但假设代码中确实有线程.要关闭所有线程,您应该在启动它们之前将它们设置为后台线程,然后在应用程序退出时自动关闭它们,例如:

Thread myThread = new Thread(...);
myThread.IsBackground = true; // <-- Set your thread to background
myThread.Start(...);

微软的一篇"如何:停止多线程"文章:http://msdn.microsoft.com/en-us/library/aa457093.aspx

.net相关问答推荐

Azure Function应用程序-如何升级.NET运行时

如何手动注入依赖注入

Gacutil.exe 成功添加程序集,但在资源管理器中无法查看程序集.为什么?

在c#中计算中位数

使用 Windows 服务和 C# 检测 USB 驱动器插入和移除

将笔画应用于 WPF 中的文本块

struct 中需要覆盖什么以确保平等正常运行?

图像与位图类

如何使用反射在 .NET 中调用重载方法

String.Split 仅在 C# 中的第一个分隔符上?

如何比较 C# 中的(目录)路径?

如何保护我的 .NET 程序集免受反编译?

POCO 是什么意思?

如何在 C# 中以编程方式安装 Windows 服务?

为什么发布和调试模式下的代码行为不同?

如何仅在需要时提升权限?

清除文件内容

功能说明

WinForms 中的模型视图演示者

您可以将 Microsoft Entity Framework 与 Oracle 一起使用吗?