在一段可能需要幾秒鐘才能完成的C#代碼的開始部分,我想顯示一個非模態窗體,其中只有一個標籤,上面寫着「Please wait ...」非模態「狀態」形式
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沒有完全顯示。所以我只看到表格的框架。在德爾福(我的老腳跺腳),我會在Show()之後調用Application.ProcessMessages在C#中是否有等價物?在這種情況下可以使用罐裝「狀態」表單嗎?有沒有更好的方法來解決這個問題?
在此先感謝。 David Jennings
非常感謝。我從來沒有看過BackgroundWorker。看起來它簡化了多線程處理。對於這種特殊情況可能不是最好的。但我一定會在同一個應用程序中使用它。 – 2010-06-02 13:44:38