Я работал с C #, разрабатывая программу для создания слайд-шоу для телевизоров в стиле домашней рекламы и т. Д.
По сути, у меня есть форма, которая первоначально переносит значения в сетевую папку с несколькими jpg, затем запускает функцию установки, чтобы получить файлы из пути к каталогу, затем запускает 2 таймера. 1 таймер - это таймер поворота изображения. а другой - таймер обновления, чтобы проверить, не изменились ли файлы в папке.
Все, что он пытался установить для изображения изображения в моей функции таймера поворота, он выбрасывает исключение «недостаточно памяти» (при первом «тике»).
Я исследовал столько, сколько смогу, я немного растерялся из-за того, что у него не хватает памяти, у моей машины достаточно физической памяти, и программа даже не кажется мне тяжелой.
Любое направление будет ценно.
Код ниже.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Collections;
namespace MarketingImagesSS
{
public partial class Slideshow : Form
{
public Menu frmMenu { get; set; }
int counter = 0;
string[] images;
Image image;
public Slideshow()
{
InitializeComponent();
}
private void tmrUpdate_Tick(object sender, EventArgs e)
{
}
private void tmrRotate_Tick(object sender, EventArgs e)
{
pxbxImages.Image.Dispose();
image = Image.FromFile(images[counter]);
}
private void setup(string directory)
{
images = Directory.GetFiles(directory);
image = Image.FromFile(images[counter]);
pxbxImages.Image = image;
counter++;
}
public void Slideshow_Load(object sender, EventArgs e)
{
string directoryPath = frmMenu.fPath;
setup(directoryPath);
//tmrUpdate.Start();
tmrRotate.Start();
}
private void pxbxImages_DoubleClick(object sender, EventArgs e)
{
Close();
}
}