Что понимается под «управляемыми» и «неуправляемыми» ресурсами в. NET?

Что означают термины управляемый ресурс и неуправляемый ресурс в .NET? Как они входят в картину?

103
задан mavis 26 June 2019 в 14:56
поделиться

2 ответа

Термин "неуправляемый ресурс" обычно используется для описания того, что не находится под непосредственным контролем сборщика мусора. Например, если вы открываете соединение с сервером базы данных, это будет использовать ресурсы на сервере (для поддержания соединения) и, возможно, другие ресурсы, отличные от .net, на клиентском компьютере, если провайдер не написан полностью в управляемом коде.

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

using (var connection = new SqlConnection("connection_string_here"))
{
    // Code to use connection here
}

Поскольку это гарантирует, что .Dispose() вызывается для объекта ресурсы очищаются.

71
ответ дан 24 November 2019 в 04:21
поделиться

Управляемые ресурсы — это ресурсы, которые представляют собой чистый код .NET и управляются средой выполнения и находятся под ее непосредственным контролем.

Неуправляемые ресурсы — это те, которые не являются таковыми. Дескрипторы файлов, закрепленная память, COM-объекты, подключения к базе данных и т. д.

30
ответ дан 24 November 2019 в 04:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: