私は.NET 3.5ベースのC#デスクトップソフトウェアで作業しています。UltraWinGridによってOutOfMemoryExceptionが発生する
私は16000行と401列の大きなUltraWinGridオブジェクトを持っています。以下のコードを使用してすべてのセルを反復処理します。
UltraGridRow currentrow = _grid.GetRow(ChildRow.First);
for (int r = 0; r < _grid.Rows.Count; r++)
{
for (int c = 0; c < currentrow.Cells.Count; c++)
{
// Do stuff
上記のコードは、Infragistics 3.xで動作するために使用されています。 Infragistics DLLを12.1にアップグレードした後、OutOfMemoryException例外がスローされます。私はthis guidelineを通過しましたが、値以外のセルの他の多くのプロパティにアクセスする必要があるため、私のケースには当てはまりません。
UltraWinGridでOutOfMemoryExceptionをスローせずにすべてのセルを安全に反復処理する方法は?どんな助けもありがとうございます。
この6416000の操作は大変です。 UIからプロセスをバックグラウンドのスレッドまたはデータベースに移動することを検討することができます。 – apc
私はできると思います。このソフトウェアは10年以上前に書かれており、リリース間で大きな変更はできません。 – Donotalo
これはおなじみのようです。私はそれが元々多くのデータを扱うことに甘んじられていなかったと推測しています。 いくつかの操作を延期して、可視の行だけを処理してから、ユーザーがプロセスをもう少しスクロールすることはできますか? //何をしているのですか? – apc