我正在使用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
未被删除并保留在内存中。我想知道是什么原因引起的。
答案 0 :(得分:0)
好吧,今天我只是尝试在我的方法结束时使用.NET方法GC::Collect()
强制进行垃圾收集,并且它运行良好。