在Windows服务中创建的线程太多 - 如何判断创建它们的内容?

时间:2018-02-07 20:42:33

标签: c# multithreading debugging logging windows-services

我的服务代码中是否有一种方法可以在每次创建一个线程时记录它的原因以及可能的一些信息,例如它的ID?

我有一个复杂的Windows服务,它正在做几个工作,包括通过Web套接字进行通信,向/从各种网络设备发送/接收UDP消息,与USB对象连接,与虚幻引擎交谈,托管REST API以及通信通过JSON RPC。

我看到的问题是,偶尔(不经常),一切都会锁定,在重启服务之前我无法在机器上执行任何操作。看一下minidump,我认为问题在于创建了太多的线程,但是我无法看到谁拥有它们或者是什么让它们旋转起来。

我有些怀疑大部分线程是由某些UDP进程创建的,也许当它没有得到它通过UDP等待的响应时(我知道UDP没有&#39) ; t发送回复并不意味着这个,但我无法改变这些智能设备发送和接收消息的方式),但我无从得知。

0 个答案:

没有答案