我创建了一个 Windows 服务应用程序,其中我打开了大约 10000 个线程,我想关闭所有线程,就像关闭 winform 应用程序时所有后台线程都关闭一样,我该如何实现?我不想将对所有这些线程的引用存储在一个数组中并使用循环关闭所有线程。
在我使用 Winform 应用程序之前,当我关闭 Winform 应用程序时,所有后台线程都会自行关闭。我想完成类似的事情来关闭 Windows 服务应用程序中的所有线程
任何想法将不胜感激。
最佳答案
如果您设置线程属性 myThread.isBackground = true
,该线程将随着所有前台线程的终止而终止(当您关闭应用程序时)。
但是,创建 10000 个线程并不是一件好事,因为操作系统将花费更多的时间在线程之间切换,而不是实际执行线程的代码。在普通计算机上执行那么多线程实际上比在 2 - 4 核 CPU 上执行 2 - 16 个线程(例如)效率低。
这是一本关于线程的优秀电子书。
PDF : http://www.albahari.info/threading/threading.pdf 网址:http://www.albahari.com/threading/
关于c# - 如何关闭 Windows 服务应用程序的所有后台线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17215026/