Есть много вопросов об управляемых vs неуправляемых ресурсах. Я понимаю основное определение этих двух. Тем не менее, мне сложно знать, когда ресурс или объект управляются или неуправляемы.
Когда я думаю о неуправляемых ресурсах, я склонен думать о собственном коде, который не является непосредственно частью .NET, например, pinvoke или marshaling resources. Обычно я думаю о ресурсах, предназначенных для взаимодействия с тем, что будет использовать HW, такие как дескриптор файла или сетевое соединение, также неуправляемые.
Что относительно объектов .NET, которые обертывают собственные неуправляемые ресурсы, такие как FileStream
.
A FileStream
должен использовать неуправляемые ресурсы, но когда я реализую шаблон IDisposable
, должен ли я рассматривать это управляемые или неуправляемые ресурсы?
До сих пор я предполагал, что если объект реализует IDisposable
, тогда он управляется. Как я узнаю, что IntPtr
следует обрабатывать как неуправляемый resoruce?