Hallo,
ich habe eine einfache Slide Show geschrieben. In dieser wird in einer Picturebox alle paar Sekundne ein neues Bild angezeigt.
Leider kommt nach einiger Zeit eine OutOfMemory Fehlermeldung. Ich finde leider den Fehler nicht. Also wodurch genau dieser Fehler ausgelöst wird. Laut TaskManager nutzt das Programm max. 50MB des RAMs.
Hier mal der wichtigste Teil aus dem Programm:
Wäre nett wenn sich jemand mal den Code ansehn könnte und mir einen Tipp gibt. Habe das Projekt im Anhang, benutzt wird Visual Studio 2015.
ich habe eine einfache Slide Show geschrieben. In dieser wird in einer Picturebox alle paar Sekundne ein neues Bild angezeigt.
Leider kommt nach einiger Zeit eine OutOfMemory Fehlermeldung. Ich finde leider den Fehler nicht. Also wodurch genau dieser Fehler ausgelöst wird. Laut TaskManager nutzt das Programm max. 50MB des RAMs.
Hier mal der wichtigste Teil aus dem Programm:
C#-Quellcode
-
- //Wähle Verzeichniss aus für Bilder
- private void verzeichnissAuswählenToolStripMenuItem_Click(object sender, EventArgs e)
- {
- DialogResult result = folderBrowserDialog.ShowDialog();
- if (result == DialogResult.OK)
- {
- Dirpath = folderBrowserDialog.SelectedPath;
- Properties.Settings.Default.Pfad = Dirpath.ToString();
- Properties.Settings.Default.Save();
- }
- }
- //Erstelle Timer
- private void slideshowStartenToolStripMenuItem_Click(object sender, EventArgs e)
- {
- if(Properties.Settings.Default.Pfad == "")
- {
- MessageBox.Show("Bitte wählen Sie zuerst ein Verzeichnis aus.");
- DialogResult result = folderBrowserDialog.ShowDialog();
- if (result == DialogResult.OK)
- {
- Dirpath = folderBrowserDialog.SelectedPath;
- Properties.Settings.Default.Pfad = Dirpath.ToString();
- Properties.Settings.Default.Save();
- }
- }
- base.SetVisibleCore(true);
- string pfad = Properties.Settings.Default.Pfad;
- System.Windows.Forms.Timer t = new System.Windows.Forms.Timer();
- t.Interval = 1000 * Convert.ToInt32(Properties.Settings.Default.Sekunden); // Intervall
- t.Tick += new EventHandler(timer_Tick);
- t.Start();
- images = Directory.GetFiles(pfad, "*.jpg", SearchOption.AllDirectories);
- }
C#-Quellcode
- //Ändere Bild alle X Sekunden
- Random random = new Random();
- void timer_Tick(object sender, EventArgs e)
- {
- //Zufallwiedergabe an
- if (Properties.Settings.Default.Zufall)
- {
- int interval = random.Next(0, images.Length);
- if (pictureBox1.Image != null)
- {
- pictureBox1.Image.Dispose();
- }
- pictureBox1.Image = Image.FromFile(images[interval]);
- }
- //Zufallwiedergabe aus
- else
- {
- if (pictureBox1.Image != null)
- {
- pictureBox1.Image.Dispose();
- }
- pictureBox1.Image = Image.FromFile(images[counter++]);
- }
- }
Wäre nett wenn sich jemand mal den Code ansehn könnte und mir einen Tipp gibt. Habe das Projekt im Anhang, benutzt wird Visual Studio 2015.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „King2k7“ ()