我正在使用c++/CLI开发一个混合的托管/本机应用程序。
我知道CLR会在(干净的)关机时挂起所有托管线程,但是非托管线程怎么办?当CLR运行时关闭/释放内存/运行终结器时,非托管线程是否可能仍在运行?
发布于 2009-06-05 17:01:48
我找到了关于这个问题的更多信息:
Managed and Unmanaged Threading in Microsoft Windows
Process shutdown in c++/CLI mixed executable
发布于 2009-05-29 01:53:20
请注意,CLR将仅挂起属性IsBackGround设置为true的托管线程。任何仍在运行的前台线程都将使应用程序“挂起”,等待所有前台线程完成。
就非托管线程而言,CLR无法知道它们,因此,除非您编写代码终止它们,否则它们将继续运行。
我可以问一下,为什么你的应用程序不能在它决定终止的时候优雅地关闭线程,而是让环境来清理它呢?
https://stackoverflow.com/questions/922973
复制相似问题