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

时间:2016-06-01 14:50:04

标签: c# winforms .net-4.5

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

您可以在VerifyFile执行结束后关闭此对话框。