代码之家  ›  专栏  ›  技术社区  ›  Hrvoje PrgeÅ¡a

在混合管理/非托管C++/CLI进程关闭过程中线程关闭

  •  2
  • Hrvoje PrgeÅ¡a  · 技术社区  · 15 年前

    我正在使用C++/CLI处理混合管理/本地应用程序。

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

    2 回复  |  直到 15 年前
        2
  •  1
  •   jerryjvl    15 年前

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

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

    我可以问一下为什么您的应用程序在决定终止线程时不能优雅地关闭线程,而不是让它留在环境中进行清理吗?