【发布时间】:2011-07-15 01:16:20
【问题描述】:
我有一些代码可以从其中的任何位置生成后台工作线程。这通常作为 Windows 服务运行。
我现在需要从 win forms 应用程序运行相同的代码(通常通过 Visual Studio 运行,而不是从独立的 exe 运行)。
当我运行主线程时,它会退出并将控制权返回给 UI,但可能仍有后台线程在运行。然后有人可以关闭应用程序/停止调试并终止其他线程。
我怎样才能防止这种情况发生(我意识到我不能阻止它被终止,我的意思是让用户知道所以他们不要终止它)通过让我的应用程序知道所有可能的子线程已经生成并等待它们退出?
有没有办法获取当前正在执行的后台线程的数量并等待它为零?
我宁愿不在产生新线程的地方添加代码,因为这不是他们关心的问题。
谢谢
【问题讨论】:
-
您的目标是什么版本的 .NET?
-
如何创建后台线程?是
new Thread()吗?
标签: c# multithreading