C# Thread.CurrentThread.ManagedThreadId和AppDomain.GetCurrentThreadId()之间的差异
我正在运行以下代码:C# Thread.CurrentThread.ManagedThreadId和AppDomain.GetCurrentThreadId()之间的差异,c#,multithreading,C#,Multithreading,我正在运行以下代码: Parallel.For(0, 8, new ParallelOptions { MaxDegreeOfParallelism = 8 }, i => { Console.WriteLine(i + " : Thread ManagedThreadId: " + Thread.CurrentThread.ManagedThreadId + " ID: " + AppDomain.GetCur
Parallel.For(0, 8, new ParallelOptions { MaxDegreeOfParallelism = 8 },
i => {
Console.WriteLine(i +
" : Thread ManagedThreadId: " + Thread.CurrentThread.ManagedThreadId +
" ID: " + AppDomain.GetCurrentThreadId().ToString());
}
)
输出:
1 : Thread ManagedThreadId: 10 ID: 9004
2 : Thread ManagedThreadId:10 ID: 9004
0 : Thread ManagedThreadId: 7 ID: 12884
4 : ThreadManagedThreadId: 7 ID: 12884
5 : Thread ManagedThreadId: 7 ID: 12884
6 : Thread ManagedThreadId: 7 ID: 12884
7 : Thread ManagedThreadId: 7 ID: 12884
3 : Thread ManagedThreadId: 10 ID: 9004
这两个ID之间有什么区别?
AppDomain.GetCurrentThreadId()
已过时:
“AppDomain.GetCurrentThreadId
已被弃用,因为当托管线程在光纤(又称轻量级线程)上运行时,它不提供稳定的Id。要获取托管线程的稳定标识符,请使用thread
上的ManagedThreadId
属性
“请注意,
AppDomain.GetCurrentThreadID()
已过时。可能的副本请参见