ThreadPool中没有足够的可用线程来完成操作消息

时间:2019-05-24 00:54:29

标签: multithreading threadpool windbg

我开始在我的应用程序中收到此异常。我进行了转储,这是线程池的样子:

0:014> !threadpool
CPU utilization: 81%
Worker Thread: Total: 1000 Running: 4 Idle: 996 MaxLimit: 1000 MinLimit: 1000
Work Request in Queue: 0
--------------------------------------
Number of Timers: 1
--------------------------------------
Completion Port Thread:Total: 32 Free: 31 MaxFree: 8 CurrentLimit: 32 MaxLimit: 1000 MinLimit: 1000

那些996个空闲线程具有类似的调用栈,如下所示:

ntdll!NtWaitForSingleObject+0x14
KERNELBASE!WaitForSingleObjectEx+0x8f
clr!CLRSemaphore::Wait+0x8a
clr!ThreadpoolMgr::UnfairSemaphore::Wait+0x115
clr!ThreadpoolMgr::WorkerThreadStart+0x28b
clr!Thread::intermediateThreadProc+0x86
kernel32!BaseThreadInitThunk+0x14
ntdll!RtlUserThreadStart+0x21

如果所有那些空闲线程都在等待工作,那为什么我会得到“ ThreadPool中没有足够的空闲线程来完成操作消息”的异常?

0 个答案:

没有答案