繁体   English   中英

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

[英]Show modal loading window in Winforms for long-running process

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

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

等待表单确实显示,但是没有关闭。 同样,验证也没有完成。 仅当我手动关闭“等待”表单时,它才会继续。 VerifyFile()完成后,如何自动关闭等待表单。

您的代码的问题在于Form.ShowDialog()方法是同步的,并且它等待“ Form”对话框的结果。 这意味着在执行“等待”对话框将被关闭之前,将一直暂停执行代码。

考虑将VerifyFile()方法移到“等待”对话框中:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM