数据表未释放内存

本文关键字:内存 释放 数据表 | 更新日期: 2023-09-27 18:28:41

我有一个简单的函数,它使用了一些数据表,问题是在执行函数后内存没有释放,请使用探查器检查内存使用情况

private void button1_Click(object sender, EventArgs e)
{
    if (!string.IsNullOrEmpty(textBox1.Text.ToString()))
    {
        //Before 6,920K
        this.Cursor = Cursors.WaitCursor;
        Inventory _INV = new Inventory();
        DataTable _dt1 = _INV.Check_Inventory_Item(textBox1.Text.ToUpper().ToString().Trim());
        dataGridView1.DataSource = _dt1;
        DataTable _dt2;
        DataTable _dt3;
        _INV.Check_Balances(textBox1.Text.ToUpper().ToString().Trim(), out _dt2, out _dt3);
        dataGridView2.DataSource = _dt2;
        dataGridView5.DataSource = _dt3;
        dataGridView3.DataSource = null;
        dataGridView4.DataSource = null;
        _dt1.Dispose(); _dt1 = null;
        _dt2.Dispose(); _dt2 = null;
        _dt3.Dispose(); _dt3 = null;
        GC.Collect();
        //After 58,450K
        this.Cursor = Cursors.Default;
    }
}

数据表未释放内存

您仍在使用数据表作为数据源:

dataGridView2.DataSource = _dt2;
dataGridView5.DataSource = _dt3;

你不应该丢弃它们。或者先将它们作为数据源删除。