讨论WinForm进度条的问题!高手请进~
如果代码这样写:
private void button1_Click(object sender, EventArgs e)
{
Thread newThread = new Thread(new ThreadStart(Run));
newThread.Start();
button1.Enabled = false;
CreateControl("System.Windows.Forms.TextBox", this, 10, 10);
}
private void Run()
{
MethodInvoker mi = new MethodInvoker(UpdateProgress);
while (true)
{
Invoke(mi);
Thread.Sleep(10);
}
}
private void UpdateProgress()
{
i++;
if (i % 100 == 0)
{
progressBar1.Increment(1);
}
button1.Text = i.ToString();
if (progressBar1.Value == 10)
{
button1.Enabled = true;
}
if (progressBar1.Value == 80)
{
Thread.CurrentThread.Abort();
this.Close();
}
}
显示没有问题!
但是如果改成:
private void button1_Click(object sender, EventArgs e)
{
Thread newThread = new Thread(new ThreadStart(Run));
newThread.Start();
button1.Enabled = false;
CreateControl("System.Windows.Forms.TextBox", this, 10, 10);
int i=0;
while(true)
{
i++;
if(i/100000 == 100000)
{
break;
}
}
}
窗体就会死在哪里不动了!谁能给解释一下,如何才能解决?