在混合托管/非托管c ++ / CLI进程关闭期间关闭线程

时间:2009-05-28 20:25:37

标签: .net multithreading interop c++-cli

我正在使用c ++ / CLI处理混合托管/本机应用程序。

我知道CLR会暂停所有托管线程(一个干净的)关闭,但是那些非托管的线程呢?非CLG运行时是否可以继续运行,而CLR运行时是否正在关闭/释放内存/正在运行的终结器?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

请注意,CLR仅挂起属性IsBackGround设置为true的托管线程。任何仍在运行的前台线程都将使应用程序“挂起”等待所有前台线程完成。

就非托管线程而言,CLR无法知道它们,所以是的,它们将继续运行,除非你编写代码来终止它们。

请问为什么你的应用程序无法在决定终止的时候优雅地关闭线程,而不是将它留给环境来进行清理?