我需要在打開文件時顯示進度對話框,這是一個耗時的操作。要做到這一點,我用我的打開文件功能裏面以下:Form.Show()間歇性地顯示線程中的表單
//some code
...
...
...
bool done = false;
//Show progress in a separate thread.
System.Threading.ThreadPool.QueueUserWorkItem((x) =>
{
using (var progressDialog = new ProgressDialog())
{
progressDialog.TopMost = true;
progressDialog.Show();
while (!done)
{
if(progressDialog.Message != this.strProgressMsg)
progressDialog.Message = this.strProgressMsg;
Application.DoEvents();
}
progressDialog.Close();
}
});
....
....
done = true;
....
....
問題: 進度對話框顯示了一些時間,有時沒有。我的文件打開功能在主線程中運行。有人能指出我爲什麼會發生這種情況嗎?