Я понимаю, что это довольно широкий вопрос, поэтому я собираюсь уточнить детали, чтобы попытаться объяснить, почему я изо всех сил пытаюсь понять процесс.
Насколько я знаю, 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?
Любая помощь в том, где я могу начать, была бы действительно полезной.