Мне нужно показать диалог прогресса при открытии файла, что является трудоемкой операцией. Для этого я использую следующую функцию в своем открытом файле:
//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;
....
....
Проблема:
Диалоговое окно Progressbar появляется несколько раз, а иногда нет. Моя функция открытия файла запускается в основном потоке. Может кто-нибудь указать мне правильное обнаружение, почему это может происходить?