我只是在每次单击按钮时都尝试运行一个新线程,这应该创建一个新表单。我在 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();
}
子窗体按钮单击事件中的代码如下所示:
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 是实现这一点的解决方案吗?如果是的话,有人可以帮我吗?