首页 > 解决方案 > 我在 vb.net 中有内存泄漏,除了使用垃圾收集器之外,我该如何解决这个问题?

问题描述

这是当我从登录切换到注册时称为登录的第一种形式,然后注册登录内存不断增加它不会停止我该如何解决这个问题?

Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
        Me.Hide()
        Dim registration As New Registration()
        registration.Show()
        GC.Collect()
        GC.WaitForPendingFinalizers()
        GC.Collect()

        Close()
    End Sub

第二种形式称为注册

  Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles linkLabel1.LinkClicked
        Me.Hide()
        Dim login As New Login()
        login.Show()
        GC.Collect()
        GC.WaitForPendingFinalizers()
        GC.Collect()
        Close()
    End Sub

我在每个表单上使用materialskin和一个带有图像的面板,垃圾收集器不起作用,close()看起来不起作用

在此处输入图像描述

标签: vb.net

解决方案


修复了这是登录表单上的代码

Imports MaterialSkin.Controls

Public Class Login
    Inherits MaterialForm
   Private _registration As Registration

    Public Sub New()
        InitializeComponent()
    End Sub

    Private Sub frm2_FormClosed(ByVal sender As Object, ByVal e As FormClosedEventArgs)
        _registration = Nothing 'If form is closed make sure reference is set to null
        _registration.Show()
    End Sub

    Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
        If _registration Is Nothing Then
            _registration = New Registration() 'Create form if not created
            AddHandler _registration.FormClosed, AddressOf frm2_FormClosed 'Add eventhandler to cleanup after form closes
        End If

        _registration.Show(Me) 'Show Form assigning this form as the forms owner
        Hide()
    End Sub

报名表格

Imports MaterialSkin.Controls

Public Class Registration
    Inherits MaterialForm
 Public Sub New()

        InitializeComponent()
    End Sub

    Private Sub LinkLabel1_LinkClicked(sender As Object, e As LinkLabelLinkClickedEventArgs) Handles linkLabel1.LinkClicked
        Owner.Show()
        Hide()
    End Sub

推荐阅读