我需要在打开文件时显示进度对话框,这是一个耗时的操作。要做到这一点,我用我的打开文件功能里面以下: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;
....
....
问题: 进度对话框显示了一些时间,有时没有。我的文件打开功能在主线程中运行。有人能指出我为什么会发生这种情况吗?