2

我知道有很多关于这个的问题。我尝试了它们,但没有得到任何结果。

我在第一次运行时创建了一个线程,当我尝试关闭表单时,表单关闭但应用程序(线程)仍在运行。

我不在乎线程会发生什么。我只想在用户单击 X 按钮时关闭整个应用程序。我试过thread_name.Abort();但没有任何反应。

4

4 回答 4

8

在没有代码的情况下,完整的答案很棘手。

我怀疑最简单的解决方案可能是将 Thread 的IsBackground属性设置为 true。

从文档:

线程要么是后台线程,要么是前台线程。后台线程与前台线程相同,只是后台线程不会阻止进程终止

于 2013-02-20T13:21:43.797 回答
2

尝试在创建线程时将Thread.IsBackground设置为。true

如果后台线程正在运行,它们不会阻止进程终止。

于 2013-02-20T13:22:04.047 回答
1

当您将线程声明为前台线程时,应用程序不会停止,因为该线程仍然存在,即使您单击了“X”。您需要将其设置为后台线程。

Thread.IsBackground = true;

在这里阅读。

于 2013-02-20T13:23:17.280 回答
0

不完全是你问的我知道,但 .NET 4.0 中的任务并行库以相当明智的方式支持取消。在您的情况下它可能可行,也可能不可行,但可以在此处获得更多详细信息

http://msdn.microsoft.com/en-us/library/dd460717(v=vs.100).aspx

于 2013-02-20T13:34:08.453 回答