.NET垃圾收集和本机线程

Nic*_*las 21 .net multithreading garbage-collection

记录得很清楚,当.NET的自动垃圾收集器运行时,它将暂时暂停与应用程序域关联的所有正在运行的托管线程.我一直没能发现什么发生在由当垃圾回收时应用程序创建的本地线程的详细信息(即使用_beginthreadex(),而不是System.Threading.Thread()).它们是否同样暂停或左侧运行?

Jas*_*ans 21

难道帮助?

"GC不会阻止未运行托管代码的线程.由于这些线程无论如何都无法触及GC的堆,因此GC无需与它们协调."

"如果一个线程在托管代码中但被调用到本机代码,它将继续运行.如果它返回托管代码,它将被停止."

  • 那很有意思.为什么那些线程不能接触GC堆?怎么样`gcroot <T>`和朋友们? (2认同)