我的控制台应用程序正在从文本文件中读取大量数据,这些数据将保存到数据库中。为此,我将数据存储到 DataTable 中,并且我想每 5 分钟将此 DataTable 转储到 DB 中(如果我想一次转储整个数据,那么我必须用整个数据集填充 DataTable,在那种情况下,我得到了 OutOfMemoryException)。
public void ProcessData()
{
string[] files=File.ReadAllLines(path)
foreach(var item in files)
{
DataRow dtRow= dataTable.NewRow();
dtRow["ID"]= .... //some code here;
dtRow["Name"]= .... //some code here;
dtRow["Age"]= .... //some code here;
var timer = new Timer(v => SaveData(), null, 0, 5*60*1000);
}
}
public void SaveData(string tableName, DataTable dataTable )
{
//Some code Here
//After dumping data to DB, clear DataTable
dataTable.Rows.Clear();
}
我在这里想要的是,代码将继续填充 DataTable,并且每 5 分钟它会调用 SaveData() 方法。这将继续运行,直到处理完所有文件。
但是,我已经看到,当调用 SaveData() 方法时,它会执行 4-5 次。有时,它每 5 分钟调用一次机器人。
我不知道如何在这里进行。如何解决这个问题?可以在这里使用任何其他方法吗?任何帮助表示赞赏。