Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 在混合托管/非托管c++/CLI进程关闭_.net_Multithreading_Interop_C++ Cli - Fatal编程技术网

.net 在混合托管/非托管c++/CLI进程关闭

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

我正在使用c++/CLI开发一个混合的托管/本机应用程序


我知道CLR会在(干净的)关机时挂起所有托管线程,但非托管线程呢?当CLR运行时正在关闭/释放内存/运行终结器时,非托管线程是否可能仍在运行?

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

就非托管线程而言,CLR无法了解它们,因此是的,除非您编写代码终止它们,否则它们将继续运行


我想问一下,为什么应用程序在决定终止时不能正常关闭线程,而不是让环境来进行清理?

我找到了有关此问题的更多信息:


不幸的是,我无法控制我们正在使用的遗留代码,因此很难正常关机。