У меня на форме 256 чекбоксов с именами от checkBox1 до checkBox256 и написан цикл который рандомно отмечает эти чекбоксы, функция работает по таймеру, значение таймера 50. Не спрашивайте для чего это нужно, проблема в том что когда запускаю 5-6 копий и все окна программы начинают лагать и сама система в том числе хотя значение загрузки процессора в районе 7%, ничего нигде не грузит. Увеличивал значение таймера, не помогает, все так-же лагает только медленнее, да и функционал быстрый нужен. Из-за чего такое происходит и как это исправить?
Сам код:
using System.Windows.Forms;
namespace WinFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
foreach (Control control in Controls)
{
if (control is CheckBox)
{
CheckBox checkBox = (CheckBox)control;
if (checkBox.Name != "autorandomcheckBox")
{
checkBox.CheckedChanged += new EventHandler((sender, e) =>
{
int index = int.Parse(checkBox.Name.Replace("checkBox", "")) - 1;
});
checkBox.Click += new EventHandler((sender, e) =>
{
int index = int.Parse(checkBox.Name.Replace("checkBox", "")) - 1;
});
}
}
}
}
private void RollRandom()
{
Random random = new Random();
for (int i = 1; i <= 256; i++)
{
CheckBox checkBox = (CheckBox)this.Controls.Find("checkBox" + i, true)[0];
checkBox.Checked = random.Next(2) == 1;
if (i == 256)
{
checkBox.Checked = true;
}
}
}
private void timer1_Tick(object sender, EventArgs e)
{
RollRandom();
}
private void autorandomcheckBox_CheckedChanged(object sender, EventArgs e)
{
if (autorandomcheckBox.Checked)
{
timer1.Enabled = true;
}
else
{
timer1.Enabled = false;
}
}
}
}