Утилизация объектов и сборка мусора в vb.net - PullRequest
1 голос
/ 01 февраля 2020

Я понимаю, что это довольно широкий вопрос, поэтому я собираюсь уточнить детали, чтобы попытаться объяснить, почему я изо всех сил пытаюсь понять процесс.

Насколько я знаю, VB. Net и. NET фреймворк, как правило, имеют встроенную сборку мусора, что означает, что когда я Dim переменной и присваиваю ей значение, мне не нужно объявлять ее нулевой или «утилизировать» ее после.

Недавно, в другом вопросе , мне напомнили об утилизации моих Pen и Brush объектов в этом примере кода:

    Private Sub pbProfilePicture_Paint(sender As Object, e As PaintEventArgs) Handles pbProfilePicture.Paint
        Dim myPen As Pen
        Dim myBrush As Brush

        myPen = New Pen(Drawing.Color.FromArgb(180, 204, 112), 1)
        myBrush = New SolidBrush(Color.FromArgb(180, 204, 112))
        Dim myGraphics As Graphics = e.Graphics
        myGraphics.DrawEllipse(myPen, 28, 28, 12, 12)
        myGraphics.FillEllipse(myBrush, 28, 28, 12, 12)
    End Sub

Мне сказали используйте команду Using или утилизируйте их вручную (предполагая .Dispose() для каждого объекта). Мой вопрос: зачем мне избавляться от объектов в этом случае? Есть ли эмпирическое правило относительно того, какие объекты должны быть утилизированы, а какие обрабатываются автоматически? Насколько я могу судить из документации, похоже, что он следует схеме утилизации всего, что инициализируется с помощью ключевого слова New.

Это последствия не утилизации объектов, засорения и увеличения использования памяти в application?

Любая помощь в том, где я могу начать, была бы действительно полезной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...