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

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相关问答推荐

从容器化客户端应用程序连接到 OPC-UA 服务器

AppShell - 返回导航失败,匹配的路由不明确......但我只注册了一次路由

如何在 Raspberry Pi 上托管 WASM 文件?

为什么具有可为空值的 struct 的 HashSet 非常慢?

在 WebApi 中需要 SSL?

.gitignore 和 Visual Studio 项目:忽略 bin/Debug 目录但不忽略 bin/Release 目录

在 ASP.NET MVC 中我可以在哪里放置自定义类?

如何使用 C# 关键字作为属性名称?

Owin Twitter登录-根据验证程序远程证书无效

指定的版本字符串不符合要求的格式 - major[.minor[.build[.revision]]]

如何在 EF 代码优先中禁用链接表的级联删除?

如何将自定义 UserControl 显示为对话框?

数据库架构更改后更新 LINQ to SQL 类的最佳方法

无法加载文件或程序集'System.ComponentModel.Annotations,版本 = 4.1.0.0

文件按文件名模式存在

让 String.Replace 只打整个单词的方法

实体框架中的 POCO 是什么?

MVC4 HTTP 错误 403.14 - 禁止

多个列表与 IEnumerable.Intersect() 的交集

不签署 .NET 程序集有什么问题吗?