Утилизация динамически созданных элементов управления - PullRequest
3 голосов
/ 10 июля 2009

У меня есть WinForms TabControl, к которому я динамически добавляю TabPages во время выполнения. Каждая вкладка содержит элемент управления WebBrowser. У меня также есть возможность удалять TabPages во время выполнения.

Стоит ли беспокоиться о Dispose () элементов управления TabPage и / или WebBrowser?

Мне кажется, я должен хотя бы Dispose () элемент управления WebBrowser, так как это немного боров ресурсов.

Ответы [ 3 ]

2 голосов
/ 10 июля 2009

Вы должны утилизировать () вашу вкладку, когда вы ее удаляете. Это автоматически удалит все дочерние элементы управления.

Подробнее см. Документацию Control.Dispose :

Освобождает неуправляемые ресурсы, используемые элементом управления и его дочерними элементами управления, и дополнительно освобождает управляемые ресурсы.

Утилизация на вкладке также будет содержать все дочерние элементы управления для вас.

2 голосов
/ 10 июля 2009

Все, что вы выделяете для реализации IDisposable, должно иметь вызов Dispose. Это цель реализации IDisposable.

1 голос
/ 10 июля 2009

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

Я всегда рекомендую эту статью CodeProject, чтобы помочь людям правильно понять шаблон Dispose и что такое Dispose. http://www.codeproject.com/KB/cs/idisposable.aspx

...