Out of Memory异常@ 50Mb内存使用情况

时间:2016-04-30 14:40:58

标签: c++ .net

我正在使用ADO.NET(数据库)开发一个类,我目前正在模拟在我的数据库中输入大量行。我的功能如下:

void CDatabaseAccess::AjouterEchantillon(double tension, double intensite)
{
    OleDbCommand^ cmd = gcnew OleDbCommand("INSERT INTO echantillons (id_course, tension, intensite) VALUES ('"+CDatabaseAccess::GetLastIdCourse()+"', '"+tension+"', '"+intensite+"')", conn);
    OleDbDataReader^ cmdReader = cmd->ExecuteReader();
    delete cmd;
    delete cmdReader;
}

当我尝试在此for循环中调用此函数时,我遇到了问题:

            for (int j = 0; j < 100; j++) {
                database->AjouterEchantillon(rDouble, j);
                Threading::Thread::Sleep(10);
            }

我的问题如下:当我的应用程序的内存使用量约为50Mb时,内存会一直在升高,直到崩溃为止。看起来垃圾收集器无法正常工作,或者我的cmdReader未被删除并保留在内存中。我想知道是什么原因引起的。

1 个答案:

答案 0 :(得分:0)

好吧,今天我只是尝试在我的方法结束时使用.NET方法GC::Collect()强制进行垃圾收集,并且它运行良好。