我们在应用程序中观察到Windows 7 x64上的4-6个线程,这些线程有3个线程,并且在Windows 7之前的任何Windows(32位或64位)上都能正常运行.
Process Explorer显示以下"未知"线程:
ntdll.dll!EtwDeliverDataBlock+offset
Run Code Online (Sandbox Code Playgroud)
在随机间隔之后出现以下线程:
ntdll.dll!TpCallbackIndependent+offset
ntdll.dll!TpCallbackIndependent+offset
Run Code Online (Sandbox Code Playgroud)
之后该应用程序无法创建线程(错误代码8,足够热的空间......).
在我看来,一些系统DLL创建ETW线程或其他东西.有谁知道这些线程是什么以及如何管理它们?
TP线程是Windows线程池API的一部分,因为您的应用程序(或应用程序使用的DLL)使用了Windows线程池API而创建.您的应用程序(或您的应用程序使用的DLL之一)似乎也在使用ETW API,它也使用了几个线程.你真的没有能力管理这些线程.
我严重怀疑那些线程是导致内存不足错误的原因.问题更可能是您的进程中没有足够的连续内存来为新线程的堆栈保留空间.
| 归档时间: |
|
| 查看次数: |
3128 次 |
| 最近记录: |