我在 C# 中使用一个线程,我将 IsBackground 属性设置为 true。线程在循环中运行一些代码,直到应用程序关闭。当应用程序关闭时,线程也停止执行(因为我设置了 IsBackground = true)。
应用程序如何杀死线程?似乎它不会通过调用 abort 来做到这一点,因为我没有得到 ThreadAbortException。它发生在幕后吗?我想在我的 finally 循环块中做一些回滚。
我知道我可以自己在线程上调用 abort,但我想知道应用程序如何关闭我的后台线程,以及我是否可以从线程内部对其做出反应。我知道我可以订阅 Application.ApplicationExit 事件,但我在服务和 winform 中都运行此代码,我更喜欢在循环中捕获异常,以便能够在 finally 语句中回滚。