我正在制作一个包含大约六个后台工作人员和一个带有 mssql 查询队列的线程的应用程序。它必须非常稳定并且开发接近尾声,所以我运行了一个小测试,应用程序运行了大约四个小时。一切都很好,除了线程 ID。
我将所有重要事件和错误与线程 ID 一起记录。问题是,当应用程序启动时,I*D 值介于 5 和 15* 之间,但四个小时后大多数线程ID 值介于 70 和 90 之间。只有有时那些是15、40 或更小的东西。
我的问题是这会导致“ running out of free threads
”错误吗?我不知道为什么会这样。两个后台工作人员进行无限循环(检查值),其他工作人员在需要时运行多次。是否有某种用于线程的 GC?为什么 ID 有这么大的值?
测试运行时,我没有在机器上做任何其他事情。