在表单上,通过单击按钮启动长时间运行的任务。该任务在一个单独的工作线程上运行,我在任务运行时显示另一个带有进度条的表单。
当任务完成或以其他方式取消时,显示进度条的表单将关闭。虚拟代码可能如下所示:
task.DoWorkAsync();
progressBar.Show(parent);
当任务完成时
progressBar.Close();
但有时恰好在显示进度条的表单关闭的那一刻,主表单进入后台。更准确地说,我必须做些什么来重现这个问题:
- 开始我的申请
- 单击另一个窗口(另一个应用程序的,比如 Excel)将其置于最前面
- 单击我的应用程序窗口(将其置于前面)
- 运行任务
现在进度条关闭后,我的应用程序窗口消失在我之前带到前面的另一个窗口(这里是 Excel)后面。
当然,我上面描述的只是我的应用程序的粗略概述。但是我需要找出为什么我的表单在进度条关闭时消失在表单后面。