在 Winforms 中显示长时间运行进程的模式加载窗口



我想在验证文件时显示一个等待 gif,这就是我到目前为止尝试过的。
有一个表单 - Form1,用户单击按钮来验证文件,还有另一个表单 - 等待,只有一个显示 gif 图像的图片框。

button_click()
{
  Wait wait = new Wait();
  wait.ShowDialog();
  VerifyFile();
  wait.Close();
}

"等待"窗体确实会显示,但不会关闭。此外,验证也没有完成。仅当我手动关闭"等待"表单时,它才会继续。如何在VerifyFile()完成后自动关闭等待表单。

代码的问题在于 Form.ShowDialog() 方法是同步的,它等待来自"Form"对话框的结果。这意味着代码执行将一直保持到"等待"对话框关闭。

考虑将 VerifyFile() 方法移动到 Wait 对话框中:

class Wait: Form
{
    public Wait() : base() 
    {
        System.Threading.Tasks.Task.Factory.StartNew(() => VerifyFile());
    }
}

您可以在验证文件执行结束后关闭此对话框。

最新更新