私のコンソールアプリはテキストファイルから大量のデータを読み込んでおり、それらはDBに保存されます。この目的のために、データを DataTable に保存しており、この DataTable を 5 分ごとに 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分ごとにボットが呼び出されることもあります。
ここでの進め方がわかりません。これを修正するには?ここで他のアプローチを使用できますか? どんな助けでも大歓迎です。