让Backgroundworker刷新启动画面

时间:2010-06-01 18:11:40

标签: .net winforms backgroundworker splash-screen

理论上可以在类中使BackgroundWorker定期刷新现有的启动画面形式,还是不可能? (我知道这可能是糟糕的设计,但目前我没有看到更好的方法。)

请记住:

  1. 我不希望后台工作人员进行加载,因为它非常难以实现。

  2. 我无法使用内置的启动画面支持

  3. 我知道DoEvents的选择,但我不想走这条路,也很难实现,而且不可靠。

1 个答案:

答案 0 :(得分:2)

这绝对是可能的,如果它不是BackgroundWorker的目的(主要是在长时间运行的后台进程中刷新前台GUI),那就非常接近了。

如果您尝试在应用程序或加载或安装过程中执行诸如使启动画面旋转图像或文本之类的操作,请考虑在启动时放置timer,并在计时器时刷新。

你最好远离DoEvents,这似乎是最初的最简单的解决方案,但会导致痛苦和间歇性,难以调试的问题。

编辑:根据您的评论,您似乎是在启动画面的GUI线程中加载应用程序,这导致您的启动表单无法自行刷新。这是预期的行为。您需要使用裸线程或BackgroundWorker(专为这种情况设计)将应用程序加载到后台线程。我敢打赌,这并不像你期望的那样难。如果您遇到问题,请随时发帖寻求帮助。