.net 在混合托管/非托管c++/CLI进程关闭
我正在使用c++/CLI开发一个混合的托管/本机应用程序.net 在混合托管/非托管c++/CLI进程关闭,.net,multithreading,interop,c++-cli,.net,Multithreading,Interop,C++ Cli,我正在使用c++/CLI开发一个混合的托管/本机应用程序 我知道CLR会在(干净的)关机时挂起所有托管线程,但非托管线程呢?当CLR运行时正在关闭/释放内存/运行终结器时,非托管线程是否可能仍在运行?请注意,CLR将仅挂起属性为IsBackGround设置为true的托管线程。任何仍在运行的前台线程都将使应用程序“挂起”,等待所有前台线程完成 就非托管线程而言,CLR无法了解它们,因此是的,除非您编写代码终止它们,否则它们将继续运行 我想问一下,为什么应用程序在决定终止时不能正常关闭线程,而不是
我知道CLR会在(干净的)关机时挂起所有托管线程,但非托管线程呢?当CLR运行时正在关闭/释放内存/运行终结器时,非托管线程是否可能仍在运行?请注意,CLR将仅挂起属性为
IsBackGround
设置为true
的托管线程。任何仍在运行的前台线程都将使应用程序“挂起”,等待所有前台线程完成
就非托管线程而言,CLR无法了解它们,因此是的,除非您编写代码终止它们,否则它们将继续运行
我想问一下,为什么应用程序在决定终止时不能正常关闭线程,而不是让环境来进行清理?我找到了有关此问题的更多信息:
不幸的是,我无法控制我们正在使用的遗留代码,因此很难正常关机。