C# 线程:Thread.CurrentThread.Name和Thread.CurrentThread.ManagedThere ADID

C# 线程:Thread.CurrentThread.Name和Thread.CurrentThread.ManagedThere ADID,c#,.net,multithreading,task,threadpool,C#,.net,Multithreading,Task,Threadpool,我试图通过给一些线程分配名称来识别它们(属性:System.Threading.Thread.CurrentThread.Name),但后来我意识到我可以使用System.Threading.Thread.CurrentThread.ManagedThreadId。我的问题是:如果我在属性CurrentThread.Name中指定“Thread1”,并且CurrentThread.ManagedThreadId将为“1”,那么这是否总是正确的?或者线程池可以为名为“Thread1”的线程分配不同

我试图通过给一些线程分配名称来识别它们(属性:
System.Threading.Thread.CurrentThread.Name
),但后来我意识到我可以使用
System.Threading.Thread.CurrentThread.ManagedThreadId
。我的问题是:如果我在属性
CurrentThread.Name
中指定“Thread1”,并且
CurrentThread.ManagedThreadId
将为“1”,那么这是否总是正确的?或者线程池可以为名为“Thread1”的线程分配不同的ManagedThreadId?

状态:

ManagedThreadId属性的值不会随时间变化, 即使托管公共语言运行库的非托管代码 将线程实现为光纤


因此,我不会担心通信线程名->托管线程id中断。

您使用的是纯
线程
对象还是
线程池
类?我使用的是任务/任务类,但对于探查器,我使用的是System.Threading.thread.CurrentThread