我注意到,在我的许多服务(使用多个线程)中,线程 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/