在可能需要几秒钟完成的C#代码部分的开头,我想显示一个带有标签的非模式形式,该标签只显示“请稍候...”。

WaitForm myWaitForm = null;

try
{
  // if conditions suggest process will take awhile
  myWaitForm = new WaitForm();
  myWaitForm.Show();

  // do stuff
}
finally
{
  if (myWaitForm != null)
  {
    myWaitForm.Hide();
    myWaitForm.Dispose();
    myWaitForm = null;
  }
}


问题是:在其余代码阻塞线程之前,WaitForm不能完全显示。所以我只看到表格的框架。在Delphi(我的旧踩地)中,我将在Show()之后调用Application.ProcessMessages。C#中是否有等效项?在这种情况下可以使用罐头“状态”表格吗?有没有更好的方法来解决这个问题?

提前致谢。
戴维·詹宁斯

最佳答案

我同意“其他线程”的建议,但是出于简单和简短的目的,Application.DoEvents()可以做到。

07-26 08:52