Beim Versuch, Bildrahmen mit SelectActiveFrame zu einer Bildliste hinzuzufügen, erhalte ich eine Ausnahme wegen zu wenig Speicher. Alles funktioniert 100%, wenn ich weniger als 174 Seiten bearbeite, aber irgendetwas darüber hinaus erzeugt diesen Fehler. In seiner einfachsten Form ist mein Code;OutOfMemoryException Hinzufügen vieler Bilderrahmen zur Bilderliste
var scannedImage = (Bitmap)Image.FromFile(@"C:\Users\rbl\Documents\Modelware\City Prop\TIFF Files\barcodememory.tiff");
var dim = new FrameDimension(scannedImage.FrameDimensionsList[0]);
var imageCount = scannedImage.GetFrameCount(dim);
var currentBatch = new List<Image>();
for (var i = 0; i < imageCount; i++)
{
scannedImage.SelectActiveFrame(dim, i);
currentBatch.Add(new Bitmap(scannedImage));
// Above experiences following error after +/- 174 pages
//System.OutOfMemoryException was unhandled
//Message=Out of memory.
//Source=System.Drawing
}
Um zu überprüfen, ob es ein Speicherproblem ist, einfach die Dim und erstellen 200 leere Bitmaps dieser Größe. Und verwende zur Klarheit ein bisschen weniger 'var'. –
Glauben Sie nicht, dass dies Speicher ist, da der physische Speicher bei 65% läuft. Zu meiner Verwendung von Vars wurden sie von ReSharper so interessant empfohlen zu hören, dass dies keine gute Übung ist. Vielen Dank. Ich vermutete, dass dies nicht gut ist –
Schauen Sie nicht auf TaskMan, führen Sie etwas Code. OOM kann durch Fragmentierung der LOH verursacht werden. –