我通过Jeffrey Richter的C#书阅读了CLR。现在我读了关于线程的章节。作者写道,CLR中的威胁与Windows操作系统中的线程完全匹配。因此,对我来说如何获得Thread实例的真实id
是很有趣的ProcessThread类实例包含Id属性。它是Windows操作系统中线程的真实 ID。我需要为Thread实例获取相同的Id值。
Thread.ManagedThreadId和Environment.CurrentManagedThreadId彼此相同的值不匹配Process.Threads返回的任何ProcessThread对象。
例如
Console.WriteLine(Thread.CurrentThread.ManagedThreadId);
Console.WriteLine(Environment.CurrentManagedThreadId);
在两种情况下都会打印11
,而Process.GetCurrentProcess().Threads
中的ProcessThread对象的最小ID从4700开始