-1
私は、LiteDBソースから来る〜5000 DataItemsのBindingSourceを使ってDatagridViewを作成しました。これらのDataItemには小さなプレビュー画像が含まれています。dotNet C#DataGridViewデータバインディングのパフォーマンス
私の問題と質問:Databindのパフォーマンスをどうにか向上させることはできますか?それとも間違って使っているのですか?
ここが私のDataObject
public class VEFile
{
public VEFile()
{
Tags = new List<VETag>();
}
public static DateTime LastPlaybacked { get; set; }
public string Path { get; set; }
public string FileName { get; set; }
public string LastAccessed { get; set; }
public byte[] Thumbnail { get; set; }
public List<VETag> Tags { get; set; }
[System.ComponentModel.Browsable(false)]
public string Id { get; set; }
public DateTime LastModified { get; set; }
public long FileSize { get; set; }
[BsonIndex]
public int ViewCount { get; set; }
}
そして、私のデータバインディングコード:
using (var db = new MyLiteDatabase(connectionString))
{
var filesCollection = db.GetCollection<VEFile>("files");
var results = filesCollection.Include(x => x.Tags).FindAll().OrderByDescending(x => x.LastModified);
originalBindingList = new BindingList<VEFile>(new List<VEFile>(results));
bindingSource1.DataSource = originalBindingList.OrderByDescending(x => x.LastModified);
}
最後の行
bindingSource1.DataSource = originalBindingList.OrderByDescending(x => x.LastModified);
は数秒プラス〜2ギガバイトまでのRAM使用量のランプのためのハングアップその後すぐに落ちる。