gpt4 book ai didi

com - 为什么CoRegisterClassObject创建两个额外的线程?

转载 作者:行者123 更新时间:2023-12-03 13:06:00 35 4
gpt4 key购买 nike

我正在尝试解决仅在VPN上的多台计算机上最近才发生的问题。它们每个都运行我编写的公开COM自动化对象的客户端应用程序。

由于一些我无法发现的奇怪原因,应用程序中的一个线程占用了所有可用的CPU时间,从而减慢了计算机上的其他操作。在观察应用程序的奇怪行为时,我注意到它是启动的第三个线程,如果在我的机器上调试,我会注意到对CoRegisterClassObject的第一次调用创建了两个额外的线程。

如果这两个线程中的第二个线程陷入无限循环,则我不确定如何解决此问题。接下来,我在哪里可以检查出什么问题?可能是由微软在上一个“补丁星期二”发布的最新补丁之一开始的吗?

我可以通过ProcessExplorer提取线程的堆栈跟踪:

ntoskrnl.exe!ExReleaseResourceLite+0x1a3
ntoskrnl.exe!PsGetContextThread+0x329
WLDAP32.dll!Ordinal325+0x1231
WLDAP32.dll!Ordinal325+0x129e
WLDAP32.dll!Ordinal325+0x1178
ntdll.dll!LdrInitializeThunk+0x24
ntdll.dll!LdrShutdownThread+0xe9
kernel32.dll!ExitThread+0x3e
kernel32.dll!FreeLibraryAndExitThread+0x1e
ole32.dll!StringFromGUID2+0x65d
kernel32.dll!GetModuleFileNameA+0x1ba

最佳答案

似乎您正在使用MTA,并且CoRegisterClassObject启动了用于服务RPC请求的新线程。但是,目前尚不清楚为什么会获得100%的CPU使用率。

关于com - 为什么CoRegisterClassObject创建两个额外的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3062988/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com