c# - ManagedThreadId不断增加

标签 c# multithreading

我注意到,在我的许多服务(使用多个线程)中,线程 ID 的值不断增加。这是麻烦的征兆吗?我是否以某种方式没有将它们返回到池中,或者这个值增加是正常行为吗?

最佳答案

只要你的线程正在返回(而不是阻塞、等待、 sleep 或无限循环),那么你就可以了。 ManagedThreadId 只是一个唯一标识符,它根本不是“线程计数”( http://msdn.microsoft.com/en-us/library/system.threading.thread.managedthreadid.aspx )

Thread.ManagedThreadId

An integer that represents a unique identifier for this managed thread.

为了确保您的线程正在返回,请在 VS 调试器中暂停您的进程并告诉它卡住所有线程并查看“线程”调试窗口。在运行时环境中,我会修改线程代码以递增锁定的整数,并在线程返回时递减相同的锁定整数(使用 try/finally block 以确保引发的异常不会导致错过整数递减) .

关于c# - ManagedThreadId不断增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11141285/

相关文章:

c# - checkboxlist - 如何在不设置选定值的情况下填充它

c# - 重写方法声明

c# - 在 WPF 应用程序中以编程方式设置文本框的颜色

vb.net - 在多个线程中运行不同的进程而不会在VB.NET 2中重叠

c++ - 2 插槽系统上的 OpenMP

c# - 为什么即使设置了 RecordSelectionFormula, Crystal 报表也会获取所有记录?

c# - 在 NHibernate 中构造针对 IUserType 的查询

java - 如何使用 Unirest 并行发送多个异步请求

multithreading - 在并发编程的上下文中, "data races"和 "race condition"实际上是同一件事吗?

c++ - Afxbeginthread 和 CreateThread 的区别