如何确定哪些是来自WinDBG的前台.NET线程? 使用!threads命令,SOS扩展告诉我们前台线程的数量但不是哪些。
答案 0 :(得分:5)
!threads
输出中的状态标志包含大量信息。如果设置了0x00000200
标志,则线程是后台线程。
在SOS for .NET 4和PSSCOR2中,有一个!threadstate
命令,它将列出给定标志值的文本。如果你没有这个,那么概述转子源代码中的标志以及John Robbins在Debugging .NET 2.0应用程序中的标志。
答案 1 :(得分:5)
您可以使用此link中给出的线程状态值,并查明某个线程是否是后台线程。
TS_Background 0x00000200线程是一个 后台线程
答案 2 :(得分:0)
Netext的命令!wthreads
显示类型和状态信息:
0:011> !wthreads
Id OSId Address Domain Alloc Start:End COM GC Type Locks Type / Status Last Exception
1 1854 0074f580 00748cd0 02c19308:02c1b2e8 STA Preemptive 0
2 1890 0075ab18 00748cd0 00000000:00000000 MTA Preemptive 0 Background|Finalizer
3 1bac 080ecb98 00748cd0 00000000:00000000 MTA Preemptive 0 Background|Worker
4 ---- 08106068 00748cd0 00000000:00000000 MTA Preemptive 0 Worker|Terminated
5 ---- 0810e988 00748cd0 00000000:00000000 MTA Preemptive 0 Worker|Terminated
6 ---- 080eb1d0 00748cd0 00000000:00000000 MTA Preemptive 0 Worker|Terminated
7 081c 080fcb48 00748cd0 00000000:00000000 MTA Preemptive 0 Background|IOCPort