Je crée un service Windows .NET qui utilise une DLL C++ non gérée. à la fois de mon service et la DLL C++ utilisent multi threading. Je manque de mémoire après un certain temps (heures) pendant le traitement. J'ai essayé de mesurer le nombre de threads en utilisant « compteurs de performance » et je surveille les valeurs suivantes:Compteurs de performance pour les unités d'exécution en cours
# of current logical Threads
# of current recognized threads
# of total recognized Threads
Alors que le premier est stable et sa valeur est raisonnable le 2ème et le 3ème ne sont pas. ils sont toujours en croissance et atteignent un nombre énorme (plus de 1500). Et ils sont égaux !!!!
Devraient-ils être égaux? Je n'ai pas non plus compris de this page si ces compteurs compteront les threads gérés et non gérés.
Je soupçonne que le code non géré est toujours lancer de nouveaux threads au lieu de les réutiliser, mais je ne suis pas sûr.
Quelqu'un peut-il aider? Remerciements
Oui, on dirait que la DLL ne réutilise pas ou ne se débarrasse pas des threads utilisés. –