6

如何确定哪些是来自 WinDBG 的前台 .NET 线程?使用 !threads 命令,SOS 扩展告诉我们前台线程的数量,但不告诉我们是哪些。

4

3 回答 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 回答