我有一个解析和处理大量数据的循环,需要很长时间。当它消失的时候,屏幕是空白的,我想知道是否有办法装载装载机或计数器?
由于它的工作量有限,我认为我可以从循环中更新进度,但进一步的读数显示它是不可能的。
有什么想法吗?感谢
答案 0 :(得分:7)
第一步是将您的流程转变为快速完成的块,以使您的应用程序保持响应。
然后,启动一个尽可能快地运行的计时器。在每个TIMER
事件中,在特定阈值下完成尽可能多的块。这会降低整个过程的速度,因此您希望阈值尽可能高。
您可以查看我的AsyncSWFModifier课程,了解有关工作示例的信息。这是我扩展的基类,它覆盖了run
方法。我不会在这里粘贴它,因为该类中有一些不相关的细节。
答案 1 :(得分:1)
这些答案是正确的,主要问题是Flash Player是单线程的。
答案 2 :(得分:0)
将您的变量设为私有(在方法范围之外),使一些Timer触发方法,并且您将获得一些不会锁定UI的伪线程。