CLR识别线程

inn*_*227 1 .net clr performance multithreading

此页面http://msdn.microsoft.com/en-us/library/zf749bat(v=vs.110).aspx讨论了CLR报告的不同线程编号:物理,逻辑和已识别.

有人可以解释一下线程被CLR"识别"的意义吗?

为什么会使我认可的线程最大值为2,而物理和逻辑线程都在30s?

Han*_*ant 5

CLR不一定知道在进程内运行的所有线程.它对使用CreateThread()的本机代码启动的线程一无所知.承载CLR的COM服务器或本机程序就是常见的例子.例如,有许多COM服务器由.NET类,System.DirectoryServices和System.Management包装.

当这样的线程调用托管代码,事件或回调是通常的情况时,它被迫处理它们.因为它还需要在该线程上执行堆栈遍历,以便在收集垃圾或查找CAS属性时查找托管对象.

此时,这个未知的本机线程成为"已识别"的线程.看到"2"这个值没什么特别的意义,任何事情都有.