Thread.Suspend、垃圾回收和安全点

对某线程调用 Thread.Suspend 时,系统会注意到已经请求了线程挂起,并且会让该线程执行到一个安全点,然后才实际挂起该线程。 线程的安全点是线程执行过程中可执行垃圾回收的一个点。

到达安全点时,运行时就会确保挂起的线程将不在托管代码中再执行任何进一步的操作。 在托管代码之外执行的线程总可以安全地进行垃圾回收,而且在它尝试恢复托管代码的执行时将继续执行托管代码。

注意注意

为了执行垃圾回收,运行时必须挂起除正在执行回收的线程以外的所有线程。每个线程在可以挂起之前都必须置于安全点。

请参见

参考

Thread

GC

概念

自动内存管理

其他资源

托管线程处理