@Qualiant

Нужно ли вызывать Dispose у Bitmap?

Нужно ли каждый раз после передачи Bitmap на отображение вызывать у него Dispose, если экземпляр Bitmap является полем класса, экземпляр которого существует только один и который живёт на протяжении всей работы приложения и не переопределяется? Само поле Bitmap активно используется для рисования и после отображения стартует новый цикл рисования картинки с нуля (new Bitmap).

Типа:
class Holder // экземпляр никогда не переопределяется
{
    Bitmap btm; // после отображения снова присваивается new Bitmap
}
  • Вопрос задан
  • 220 просмотров
Решения вопроса 1
Dispose нужно вызывать всегда, когда вы прекращаете пользоваться ресурсом.
В вашем случае битмапом владеет Holder, по тому Holder нужно сделать IDisposable и вызывать Dispose на нём при завершении работы программы.
Если жизненным циклом битмапа управляет не Holder, то Holder не нужно делать IDisposable, но перед тем как избавиться от Bitmap - на нём надо вызвать Dispose, иначе произойдёт утечка памяти или ещё чего (не уверен, что там внутри битмапа хранится и какие там ограничения)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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