0

理论上是否可以让 BackgroundWorker 在一个类中定期刷新现有的启动屏幕表单,或者这是不可能的?(我知道这可能是糟糕的设计,但目前我没有看到更好的方法。)

请记住:

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

  2. 我无法使用内置的闪屏支持

  3. 我知道 DoEvents 替代方案,但我不想走这条路,它也很难实现,而且不可靠。

4

1 回答 1

2

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

如果您尝试在应用程序或加载或安装时让启动画面在图像或文本中旋转,请考虑在启动画面上放置一个计时器,并在计时器滴答时刷新。

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

编辑:从您的评论来看,您似乎正在将应用程序加载到启动屏幕的 GUI 线程上,这导致您的启动表单无法自行刷新。这是预期的行为。您需要使用裸线程或 BackgroundWorker(专为这种情况而设计)将应用程序加载到后台线程上。我敢打赌,这并不像你想象的那么难。如果您在使用这种方法时遇到问题,请随时发布问题寻求帮助。

于 2010-06-01T18:15:23.577 回答