C# 如何管理线程ID';在.NET中确定的s值?

C# 如何管理线程ID';在.NET中确定的s值?,c#,multithreading,variable-assignment,C#,Multithreading,Variable Assignment,我对Thread.ManagedThreadId及其可能的值很好奇(它的类型是int) 除了唯一性之外,指导ID值如何分配的规则有哪些 做一些粗略的测试,似乎: 值始终大于0 他们开始时很低(青少年),然后几乎按时间顺序增加 当线程完成时,先前的值将被释放-这意味着赋值将在按时间顺序排列的值和已释放的值之间来回跳转 赋值的方式似乎不会因线程的创建方式(显式线程创建、工作线程等)而有所不同 顺序似乎还取决于线程的定义方式以及它们终止的速度(即,简单地定义线程不会分配id,但线程的实际开始时间决定

我对
Thread.ManagedThreadId
及其可能的值很好奇(它的类型是
int

除了唯一性之外,指导ID值如何分配的规则有哪些

做一些粗略的测试,似乎:

  • 值始终大于0
  • 他们开始时很低(青少年),然后几乎按时间顺序增加
  • 当线程完成时,先前的值将被释放-这意味着赋值将在按时间顺序排列的值和已释放的值之间来回跳转
  • 赋值的方式似乎不会因线程的创建方式(显式线程创建、工作线程等)而有所不同
  • 顺序似乎还取决于线程的定义方式以及它们终止的速度(即,简单地定义线程不会分配id,但线程的实际开始时间决定值)

但是,除了我自己的测试之外,我想知道是否有人有关于如何分配值的文档?

来自您的(开发人员的)透视图-该值是完全任意的。它是
Thread.ManagedThreadId
而不是
Thread.ManagredThreadId
这是一个可以在不同版本之间更改的实现细节。有一个:)太棒了,所以这确认了值不会是负值,它最终将由您(开发人员)的int.MaxValue透视图-该值是完全任意的。它是
Thread.ManagedThreadId
而不是
Thread.ManagedThreadId
这是一个可以在不同版本之间更改的实现细节。有一个:)太棒了,所以这确认了值不会是负数,它最终将由int.MaxValue限定。