一个关于MessageBox弹出的问题,为什么显示后FormUpdate仍可以激活,涉及到线程
//主窗体
private void FormUpdate_Load(object sender, EventArgs e)
{
Thread thUpdate = new Thread(new ThreadStart(UpdateProgram));
thUpdate.Start();
}
//更新线程调用的函数
private void UpdateProgram()
{
this.BeginInvoke(new EventHandler(UpdateFinish));
}
//更新完成后在主界面上弹出一个messagebox提示
private void UpdateFinish(object sender, EventArgs e)
{
if (this.InvokeRequired)
{ //如果不是在主线程,调用委托返回到主线程
this.Invoke(new EventHandler(UpdateFinish));
return;
}
MessageBox.Show( "更新完毕! ");
}
按理说我的
MessageBox.Show( "更新完毕! ");
是在thUpdate线程中通过一个托触发的,也就是说在主界面上弹出的MessageBox,那为什么MessageBox弹出后,主界面仍可激活,此时的MessageBox不是dialog模式嘛,还是我程序写错了,请高手指点,急!
------解决方案--------------------MessageBox.Show( "更新完毕! ",null);
return "更新完毕@ "!试试
------解决方案--------------------anyway, 这样
MessageBox.Show(this, "message ");
------解决方案--------------------没有你说的现象
主窗体不能激活。
------解决方案--------------------MessageBox.Show( "更新完毕! ");
和他不是一个线程的
自然就。。。。
------解决方案--------------------return "更新完毕 ";