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限定。