我可以从Process.GetCurrentProcess()获取运行线程的列表。线程,但我需要知道用Thread.Start启动的线程的托管名称。但它不是ProcessThread对象的属性。有没有办法从ProcessThread获取此信息?
答案 0 :(得分:7)
虽然CLR为每个托管线程生成一个OS线程,但它并没有被强制使用。我的意思是,没有标准保证OS线程和托管线程之间应该有一对一的映射。
引用MSDN:
操作系统ThreadId没有 与托管的固定关系 线程,因为非托管主机可以 控制之间的关系 托管和非托管线程。 具体而言,复杂的主机可以 使用CLR Hosting API来安排 许多托管线程反对同样的 操作系统线程,或移动一个 不同的托管线程 操作系统线程。