379个CLR线程正在挂起转储

时间:2015-05-18 14:30:23

标签: c# .net multithreading windbg crash-dumps

在一个环境中,当应用程序停止正常工作时,我们会有某种挂起。我有一个转储,当我在VS中打开它时,我看到我有379个线程。

当我看到那些线程的调用堆栈时,我看到了像

这样的想法
ntdll!NtWaitForSingleObject+0xa C/C++/ASM
KERNELBASE!WaitForSingleObjectEx+0x92   C/C++/ASM
clr!CLREventWaitHelper2+0x38    C/C++/ASM
clr!CLREventWaitHelper+0x1f C/C++/ASM
clr!CLREventBase::WaitEx+0x70   C/C++/ASM
clr!AppDomain::ADUnloadThreadStart+0x190    C/C++/ASM
clr!Thread::intermediateThreadProc+0x7d C/C++/ASM
kernel32!BaseThreadInitThunk+0x1a   C/C++/ASM
ntdll!RtlUserThreadStart+0x1d   C/C++/ASM

所有线程都是普通优先级,并且通过调用堆栈(例如

)具有一些高优先级
ntdll!NtWaitForMultipleObjects+0xa  C/C++/ASM
KERNELBASE!WaitForMultipleObjectsEx+0xe5    C/C++/ASM
clr!SVR::WaitForFinalizerEvent+0xb7 C/C++/ASM
clr!SVR::GCHeap::FinalizerThreadWorker+0x4a C/C++/ASM
clr!ManagedThreadBase_DispatchInner+0x2d    C/C++/ASM
clr!ManagedThreadBase_DispatchMiddle+0x6c   C/C++/ASM
clr!ManagedThreadBase_DispatchOuter+0x75    C/C++/ASM
clr!SVR::GCHeap::FinalizerThreadStart+0xd7  C/C++/ASM
clr!Thread::intermediateThreadProc+0x7d C/C++/ASM
kernel32!BaseThreadInitThunk+0x1a   C/C++/ASM
ntdll!RtlUserThreadStart+0x1d   C/C++/ASM

我在转储analysys中有充分的经验。你能解释一下这是什么意思吗? 看起来线程正在等待一些事件。但是什么事情和为什么这么多线程?

0 个答案:

没有答案