一个多线程的问题.请高手帮忙回答.
我点了button1开始一个线程.
按了这个按钮后我想按第二个按钮就按不动了..直到线程运行完了..这是为什么啊.
请高手指点一二
下面是代码:
private void button1_Click(object sender, EventArgs e)
{
Thread threadParse = new Thread(new ThreadStart(RunParser));
threadParse.Start();
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show( "点了第二个按钮 ");
}
delegate void GetRunParserHandle();
void RunParser()
{
if (this.InvokeRequired)
{
GetRunParserHandle rph =
new GetRunParserHandle(this.RunParser);
this.Invoke(rph);
return;
}
else
{
Thread.Sleep(5000);
textBox1.Text = "5秒过了 ";
}
}
------解决方案--------------------你只开了一个线程
------解决方案--------------------为什么那个委托还要调用RunParser()呢?必须要这样用吗?
------解决方案--------------------你可以调用其他方法来处理就可以,没必调用自己,你试一下调用其他的方法看看,那就不可卡住不动的.
还有,this.Invoke();是同步调用
this.BeginInvoke();就是异步了
------解决方案--------------------你怎么又是线程又是INVOKE的同时来调它,看得我有点迷糊