2009-04-13 3 views
0

Par exemple, j'ai une classe tierce avec du code non sécurisé dans ses méthodes. Il fait des changements de mémoire et n'efface pas la mémoire après elle-même. Il arrive, que je dois utiliser cette classe et ses méthodes dangereuses. Pouvez-vous, s'il vous plaît, m'expliquer ce qu'il adviendra de ces octets écrits par un code non sécurisé, après la prochaine passe Garbage Collector.Importer une classe avec un code non sécurisé

Répondre

2

Le Garbage Collector .NET ne fera rien avec ces octets car le moteur d'exécution ne les a pas alloués. Ils vont juste rester fuit.

0

Rien ne se passe. Avec le code et l'allocation de mémoire non sécurisés, c'est le code non sécurisé pour libérer correctement les ressources du système.

4

Le garbage collector ne les touchera pas. D'une part, c'est bien, car vous n'avez pas à vous soucier d'interférer avec le code non géré. D'un autre côté, si vous ne les nettoyez pas vous-même, c'est une fuite de mémoire.

Chaque fois que vous utilisez un code dangereux qui alloue de la mémoire, je l'entourerais d'un objet qui implémente IDisposable. Si une classe tierce n'implémente pas déjà IDisposable, je créerais une nouvelle classe qui encapsulerait la fonctionnalité.

Questions connexes