У меня есть программа, которую я написал на C # с окном.
У меня есть кнопка, которая делает некоторые вещи (неважно, что именно), и она обновляет окно в его цикле (в функции button_click) (с помощью this.Invalidate (false); Обновить, потому что у меня есть групповой ящик, который я не хочу обновлять)).
Я не могу свернуть окно, пока работает функция button_click, и окно "застряло".
Я пытаюсь перевести код этой кнопки в другой поток, но есть проблема с обработкой параметров из основной формы.
допустим, у меня есть этот код:
void button_click(object sender, EventArgs e)
{
/*want to put this in new thread*/
progressBar1.Value = 0;
progressBar1.Maximum = int.Parse(somelabel_num.Text);
int i;
OpenFileDialog file = new OpenFileDialog();
file.ShowDialog();
if (file.FileName == "")
return;
Bitmap image = new Bitmap(file.FileName);
groupBox1.BackgroundImage = image;
for (i = 0; i < int.Parse(somelabel_num.Text); i++)
{
somelabel.Text = i;
this/*(main form)*/.Invalidate(false);
progressBar1.PerformStep();
}
/*want that here the new thread will end*/
}
так, как сделать это как поток, который получает параметры (progressBar1, groupBox1 и somelabel)?