我的设置:
它可以工作,但CPU无法忍受。然后是80-90的峰值到10~然后回来并循环。我删除.CommandText和.ExeecuteNonQueryAsync的那一刻它几乎没有超过4%。
CPU使用率调试窗口的屏幕截图:
为什么我上面的设置是将每个循环的已检查索引存储在一个hashset上,这样当我关闭,重新打开并重新启动该循环时,它知道我已经循环的索引,以便我可以从hashset中删除它们并在没有这些索引的情况下继续循环。
有没有更好的方法来做我正在做的事情?
我在ForEach中执行的代码:
looper_checkedIndexes.Add(Index);
using (SQLiteCommand command = sqldb.CreateCommand()) {
command.CommandText = "UPDATE `timeMachine` SET `indexes`='" + string.Join(",", looper_checkedIndexes) + "' WHERE `config`='" + General["name"].ToString().Replace("'", "\\'") + "'";
command.ExecuteNonQueryAsync();
}