Представьте, что вы пишете библиотеку. Скажем, эта библиотека будет использоваться в серверном приложении 24/7. Есть некоторые неуправляемые ресурсы, завернутые в ваш общедоступный API, поэтому вы реализуете одноразовый шаблон (вы даже можете реализовать финализаторы)Одноразовые ресурсы в библиотечном коде
Обычно вы должны использовать оператор using
, чтобы освободить неуправляемые ресурсы. Но вы пишете только библиотеку, а не последнее приложение. Что, если другой программист «забыл» позвонить Dispose()
? Вы получите утечку ресурсов в своей библиотеке! Мы могли положиться на финализаторы, но нет никакой гарантии, что финализатор когда-либо был бы called. Итак, есть ли способ гарантировать, что каким-то образом неуправляемые ресурсы будут освобождены? Есть идеи?
Thx для ответа. хорошая метафора! – undefined