C# 找出哪个方法、类或对象创建了这么多线程
我有一个需要全天候运行的服务器应用程序。连接到服务器的客户端在几天后挂断。我们刚刚了解到服务器(通过内存转储)生成了800多个线程!在某些情况下,它将达到100+!我知道这真的太多了,一定是因为客户的电话没有得到服务C# 找出哪个方法、类或对象创建了这么多线程,c#,multithreading,C#,Multithreading,我有一个需要全天候运行的服务器应用程序。连接到服务器的客户端在几天后挂断。我们刚刚了解到服务器(通过内存转储)生成了800多个线程!在某些情况下,它将达到100+!我知道这真的太多了,一定是因为客户的电话没有得到服务 0:000> !threads -live ThreadCount: 809 UnstartedThread: 790 BackgroundThread: 14 PendingThread: 790 DeadThread: 1 Hosted Ru
0:000> !threads -live
ThreadCount: 809
UnstartedThread: 790
BackgroundThread: 14
PendingThread: 790
DeadThread: 1
Hosted Runtime: no
PreEmptive GC Alloc Lock
ID OSID ThreadOBJ State GC Context Domain Count APT Exception
0 1 d4c 012be0a0 2006020 Enabled 00000000:00000000 012b7310 0 STA
2 2 d54 012c9dd0 b220 Enabled 00000000:00000000 012b7310 0 MTA (Finalizer)
3 3 d60 0131a0c0 100a220 Enabled 00000000:00000000 012b7310 0 MTA (Threadpool Worker)
4 4 d64 01331ef0 b220 Enabled 00000000:00000000 012b7310 0 MTA
6 6 d70 01337348 1000220 Enabled 00000000:00000000 012b7310 0 Ukn (Threadpool Worker)
7 7 d8c 0133f100 2000220 Enabled 00000000:00000000 012b7310 0 Ukn
9 a f90 06c2c948 2000220 Enabled 00000000:00000000 012b7310 0 Ukn
10 b 9a8 06c33f48 200b020 Enabled 00000000:00000000 012b7310 0 MTA
11 c 584 06c34450 200b020 Enabled 00000000:00000000 012b7310 0 MTA
12 d 5f4 06c35758 200b020 Enabled 00000000:00000000 012b7310 0 MTA
13 12 970 06ca6d08 2000220 Enabled 00000000:00000000 012b7310 0 Ukn
14 e 1254 06ca8b38 2000220 Enabled 00000000:00000000 012b7310 0 Ukn
15 13 12f0 06ca9548 2000220 Enabled 00000000:00000000 012b7310 0 Ukn
16 5 10ec 06ca7210 2000220 Enabled 00000000:00000000 012b7310 0 Ukn
17 f 1d90 06cac290 a009220 Enabled 259e45ac:259e4fe8 012b7310 0 MTA (Threadpool Completion Port)
19 19 1124 06ca7718 8009220 Enabled 258f90c4:258fafe8 012b7310 0 MTA (Threadpool Completion Port)
20 8 1394 06ca9040 2000220 Enabled 00000000:00000000 012b7310 0 Ukn
22 322 21d4 13698f50 2000220 Enabled 259e6394:259e6fe8 012b7310 0 Ukn
服务器代码由数千行代码组成。有没有一个简单的工具来检查哪个对象生成了那么多线程 你需要一个探查器。试试探查器——我用redgate的结果很好-