【问题标题】:Show .gif animation when control is not there in the c# (windows) application当 c# (windows) 应用程序中没有控件时显示 .gif 动画
【发布时间】:2011-06-27 11:59:23
【问题描述】:

我有一个应用程序,我正在使用来自服务器的 webClient 调用一个 .php 文件。完成该过程需要几分钟(基于客户端数据库)。我试图显示进度条,但由于 control is not here it's not processing 。它在完成下载过程时更新。所以现在我正在尝试显示 .gif 图像,但图像也发生了同样的事情。还有其他解决方案吗??????

【问题讨论】:

  • 更好的选择是以另一种形式“等待形式”显示进度条,并在下载过程完成时关闭等待形式。
  • 谢谢。我试过了,但当控件不在应用程序中时,它也没有显示。而且它也没有在等待表格中显示图像,只是它在空白表格中显示

标签: c# php progress-bar animated-gif


【解决方案1】:

当然。您希望在单独的(非 UI)线程中完成耗时的任务,并让 UI 线程进行消息处理,这反过来会重绘进度条并为 GIF 设置动画。

【讨论】:

  • @deepi 不幸的是,这是唯一可靠的方法。你可以到处乱扔Application.DoEvents(),但是文件下载是一个阻塞操作,所以你的表单似乎总是卡住。
  • 感谢 Anton Gogolev 的回复。我正在使用 Application.DoEvents();但没用
【解决方案2】:

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

【讨论】:

  • 根据我的实用程序要求,我不打算在我的应用程序中使用线程
  • 如果你坚持不使用线程是不行的,并不是说整个应用程序界面在下载时都会挂掉,这不好。
  • 我不明白为什么你不应该使用线程,它们是免费的,如果这是一个学校任务,WebClient 比线程更高级! PS:如果你不能使用线程而不是使用 BackGroundWorker 它也是一个线程但不命名为。
  • 其实这个实用程序用于离线和在线应用程序的同步。因此,为此我们需要保持流程应该采用相同的给定格式。所以他们不想冒险使用线程。所以他们给了我这样的要求,不要使用线程
猜你喜欢
  • 1970-01-01
  • 2012-09-27
  • 1970-01-01
  • 1970-01-01
  • 2011-02-09
  • 2011-06-09
  • 2017-10-15
  • 1970-01-01
相关资源
最近更新 更多