Как запустить новую форму в другом потоке в C #?
Я просто пытаюсь запустить новый поток каждый раз, когда происходит нажатие кнопки, что должно создать новую форму. Я попробовал это в событии нажатия кнопки в MainForm:
private void button1_Click(object sender, EventArgs e)
{
worker1 = new Thread(new ThreadStart(thread1));
worker2 = new Thread(new ThreadStart(thread2));
worker1.Start();
worker2.Start();
}
private void thread1()
{
SubForm s = new SubForm();
s.Show();
}
private void thread2()
{
SubForm s = new SubForm();
s.Show();
}
Код в событии нажатия кнопки Subform выглядит следующим образом:
private void button1_Click(object sender, EventArgs e)
{
int max;
try
{
max = Convert.ToInt32(textBox1.Text);
}
catch
{
MessageBox.Show("Enter numbers", "ERROR");
return;
}
progressBar1.Maximum = max;
for ( long i = 0; i < max; i++)
{
progressBar1.Value = Convert.ToInt32(i);
}
}
Это правильный путь? Поскольку я пытаюсь открыть две независимые формы, операции в одном потоке не должны влиять на другой поток.
Или BackGroundworker - решение для реализации этого? Если да, может кто-нибудь помочь мне с этим?