Утечка памяти в C # - PullRequest
       105

Утечка памяти в C #

54 голосов
/ 07 марта 2009

Возможно ли когда-либо в управляемой системе утечка памяти, когда вы убедитесь, что все ручки, вещи, которые реализуют IDispose, расположены?

Были бы случаи, когда некоторые переменные не учитывались?

Ответы [ 21 ]

0 голосов
/ 07 марта 2009

Единственные утечки (кроме ошибок во время выполнения, которые могут присутствовать, хотя и не слишком вероятны из-за сборки мусора), будут относиться к собственным ресурсам. Если вы выполняете P / Invoke в собственной библиотеке, которая открывает файловые дескрипторы или соединения с сокетами, или что-либо еще от имени вашего управляемого приложения, и вы никогда не закрываете их явно (и не обрабатываете их в диспозиторе, деструкторе / финализаторе), вы можете есть утечки памяти или ресурсов, потому что среда выполнения не может автоматически управлять всеми этими проблемами.

Однако, если вы придерживаетесь чисто управляемых ресурсов, все будет в порядке. Если вы испытываете утечку памяти в любой форме без обращения к собственному коду, то это ошибка.

...