当前位置:  开发笔记 > 编程语言 > 正文

如何中止使用ThreadPool.QueueUserWorkItem创建的线程

如何解决《如何中止使用ThreadPool.QueueUserWorkItem创建的线程》经验,为你挑选了2个好方法。

有没有办法中止用QueueUserWorkItem创建的线程?

或者我可能不需要?如果主应用程序退出会发生什么?从它创建的所有线程是否自动中止?



1> Judah Gabrie..:

你不需要中止它们.当您的应用程序退出时,.NET将终止所有IsBackground = true的线程..NET threadpool的所有线程都设置为IsBackground = true,因此您不必担心它.

现在,如果您通过新建Thread类来创建线程,那么您将需要中止它们或将其IsBackground属性设置为true.



2> Will Dean..:

但是,如果您在这些线程中使用非托管资源,则可能会遇到很多麻烦.

这取决于你如何使用它们 - 如果这些非托管资源被正确包装,那么它们将通过它们的包装器终结来处理,而不管用于杀死引用它们的线程的机制.当应用程序退出时,操作系统会释放非托管资源.

人们普遍认为(Windows)应用程序花费太多时间来尝试清理应用程序关闭 - 通常涉及分页 - 大量内存只是为了可以再次丢弃(或者代码中的分页代码)释放操作系统无论如何都要处理的未处理对象.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有