如何从Process.GetCurrentProcess()获取托管线程。线程

时间:2009-01-21 19:27:18

标签: c# multithreading

我可以从Process.GetCurrentProcess()获取运行线程的列表。线程,但我需要知道用Thread.Start启动的线程的托管名称。但它不是ProcessThread对象的属性。有没有办法从ProcessThread获取此信息?

1 个答案:

答案 0 :(得分:7)

虽然CLR为每个托管线程生成一个OS线程,但它并没有被强制使用。我的意思是,没有标准保证OS线程和托管线程之间应该有一对一的映射。

引用MSDN:

  

操作系统ThreadId没有   与托管的固定关系   线程,因为非托管主机可以   控制之间的关系   托管和非托管线程。   具体而言,复杂的主机可以   使用CLR Hosting API来安排   许多托管线程反对同样的   操作系统线程,或移动一个   不同的托管线程   操作系统线程。