Question

Nous observons 6/4 fils sur Windows 7 x64 dans l'application qui ont 3 fils et se comporte normalement sur un de Windows (32 ou 64 bits) avant de Windows 7.

Process Explorer affiche les éléments suivants fil "inconnu":

ntdll.dll!EtwDeliverDataBlock+offset

après intervalle aléatoire apparaissent les sujets suivants:

ntdll.dll!TpCallbackIndependent+offset
ntdll.dll!TpCallbackIndependent+offset

après que l'application ne peut pas créer le thread (code d'erreur 8, l'espace assez chaud ...).

Il me semble que certains DLL système crée des threads ETW ou quelque chose. Est-ce que quelqu'un sait ce que ces fils et comment les gérer?

Était-ce utile?

La solution

Les fils de TP font partie de Windows threadpool API et sont créés parce que votre application (ou une DLL utilisée par votre application) a utilisé l'API Windows threadpool. Il apparaît également que votre application (ou l'une des DLL utilisées par votre application) utilise les API ETW qui utilisent également deux threads. Vous n'avez pas vraiment la capacité de gérer ces fils.

Je doute sérieusement que ces fils sont ce qui provoque l'erreur de dépassement de mémoire. Il est plus probable que le problème est qu'il n'y a pas assez de mémoire disponible dans votre contigue processus pour réserver la chambre pour la pile du nouveau thread.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top