[英]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.