如何确定哪些是来自 WinDBG 的前台 .NET 线程?使用 !threads 命令,SOS 扩展告诉我们前台线程的数量,但不告诉我们是哪些。
问问题
2081 次
3 回答
6
您可以使用此链接中给出的线程状态值来确定线程是否为后台线程。
TS_Background 0x00000200 线程是后台线程
于 2009-04-28T12:03:05.173 回答
6
输出中的状态标志!threads
包含很多信息。如果0x00000200
设置了标志,则线程是后台线程。
在 .NET 4 和 PSSCOR2 的 SOS 中,有一个!threadstate
命令将列出给定标志值的文本。如果您没有,可以查看转子源代码和 John Robbins 调试 .NET 2.0 应用程序中的标志的概述。
于 2009-04-28T11:31:18.540 回答
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
于 2015-07-30T13:56:57.780 回答