在c#(windows)应用程序中没有控件时显示.gif动画

在c#(windows)应用程序中没有控件时显示.gif动画,c#,php,progress-bar,animated-gif,C#,Php,Progress Bar,Animated Gif,我有一个应用程序,我正在使用服务器上的webClient调用一个.php文件。完成此过程需要几分钟(基于客户端数据库)。我试图显示进度条,但因为控件不在这里,所以无法处理。它将在完成下载过程时更新。所以现在我尝试显示.gif图像,但图像也会发生同样的事情。还有其他解决方案吗?当然。您希望在一个单独的(非UI)线程中执行耗时的任务,并让UI线程执行消息处理,从而重新绘制进度条并为GIF设置动画 您可以使用线程来完成。您可以在新线程中调用.php文件,在UI线程中,您可以显示gif图像以向用户显示进

我有一个应用程序,我正在使用服务器上的webClient调用一个.php文件。完成此过程需要几分钟(基于客户端数据库)。我试图显示进度条,但因为控件不在这里,所以无法处理。它将在完成下载过程时更新。所以现在我尝试显示.gif图像,但图像也会发生同样的事情。还有其他解决方案吗?

当然。您希望在一个单独的(非UI)线程中执行耗时的任务,并让UI线程执行消息处理,从而重新绘制进度条并为GIF设置动画

您可以使用线程来完成。您可以在新线程中调用.php文件,在UI线程中,您可以显示gif图像以向用户显示进程正在继续,在线程完成工作后,您可以隐藏gif图像。

更好的选择是以另一种形式“Waiting form”显示进度条下载过程完成后,请关闭等待表单。谢谢。我试过了,但是当控件不在应用程序中时,它也没有显示。而且它没有在等待表单中显示图像,只是在空白表单中根据我的实用程序要求,我不想在我的应用程序中使用线程如果你坚持不使用线程,这将不起作用,并不是说下载时整个应用程序界面都会被挂起,这是不好的。我不明白为什么你不应该使用线程,如果这是学校的任务,那么线程的免费和WebClient比treads更高级!PS:如果你不能使用线程而不能使用BackGroundWorker,那么它也是一个线程,但没有命名为。实际上,这个实用程序用于同步脱机和联机应用程序。因此,我们需要保持流应该是相同的给定格式。因此,他们不想冒险使用线程。所以他们给我这样的要求不要用threads@deepi不幸的是,这是唯一可靠的方法。您可以到处抛出
Application.DoEvents()
,但文件下载是一个阻塞操作,因此您的表单似乎总是被卡住。感谢您的回复Anton Gogolev。我正在使用Application.DoEvents();但是没有用