すべてのメモリを使用しているリストビューがあると思います。私が何をしているのか説明させてください
メッセージを取得するデバイスがあり、それらにタイムスタンプを付け、それらを sqldatabase に追加します
myConnection.Open();
SqlCommand cmd = new SqlCommand("INSERT INTO Messages (Time, Message) Values ('" + DateTime.Now + "', '"+sqlMessage+"')", myConnection);
cmd.ExecuteNonQuery();
myConnection.Close();
UpdateTable();
リストビューを更新する方法は次のとおりです。
myConnection.Open();
myCommand.Connection = myConnection;
adapter.SelectCommand = myCommand;
myCommand.CommandText = "SELECT * FROM Messages";
DataSet ds = new DataSet();
adapter.Fill(ds);
lvwMessages.DataContext = ds.Tables[0].DefaultView;
myConnection.Close();
これをしばらく実行したままにすると、プログラムは通常メモリ不足になります。リストビューがデータベースからロードするメッセージが多すぎると思います。しかし、画面に必要な 15 行のメッセージが表示されているとしましょう。必要な 15 個だけをロードし、表示する必要のないものをメモリから取り出して、新しいものをロードするにはどうすればよいですか?