【问题标题】:Multi threading in flex mobile projectflex 移动项目中的多线程
【发布时间】:2011-06-20 08:04:11
【问题描述】:

我想通过 flex 框架在移动设备上下载视频。出于这个原因,我需要支持多线程,以便我可以在后台下载视频。不幸的是,Flex 没有多线程支持。你们知道我该怎么做吗?我对 flex 环境很陌生。

谢谢

【问题讨论】:

    标签: android multithreading ios apache-flex mobile


    【解决方案1】:

    看看你究竟想要达到什么目标可能会很有用。您编写的哪些代码会阻塞您认为需要多线程处理?

    多线程在 Flex 中不可用,主要是因为它在 Flash 平台上不可用。 (不过,如果您绝对需要,您可以实现“绿色线程”。)然而,Flex 中所有需要任何时间或阻塞的操作都是异步的,因此大多数操作不需要多线程。

    例如,您不需要多线程来下载内容。假设您正在使用类似 HTTPService 的类,您只需构建您的 URL,send() 请求,并在收到数据时获得回调。

    如果您想显示视频,您通常在某种媒体播放器 UI 中执行此操作,可能已经为您解决了这一问题。

    【讨论】:

    • 还应注意 Flash Player 的异步、事件驱动特性。我唯一需要多线程(或绿色线程)的时候是当我在代码中进行一些非常密集的计算并且我需要 UI 在完成时做出响应。
    • @J_A_X:同意。 Flash/Flex 被设计为本质上是异步的。关于你开发方式的一切都是事件驱动的。同意。线程仅用于计算工作。
    • 虽然我完全同意这里的想法和解释,但我遇到了需要真正的多线程的问题(至少在工作线程和 UI 线程的意义上)。由于你们两个有丰富的经验,也许你可以给我一个指针,当我们获取大量数据(2000 行,大约 20 列数据)时,flash 播放器 UI 往往会在“tincan”过程发生时暂时锁定(我认为这在某种程度上与反序列化过程有关)它从来都不是一个主要问题,但在动画期间是一个烦恼,绿色线程可以帮助吗?
    • @shaunhusain:我会坚持我的说法:“线程只需要计算工作”......而不是阻塞工作。换句话说,Flash Player 当然可以使用线程。自从我进入这个平台以来,这是我一直想要的功能。话虽如此,您可能会考虑将行分块到 UI 中。您不太可能需要立即可视化所有 2000 行。您可能有一个进程使用每帧的块向 UI 发送数据。或者,您可以考虑使用“绿色线程”来完成这项工作。如果可行,还可以考虑采用虚拟化方法。
    • 我只想指出,Flash 11 播放器实际上会有多线程。
    猜你喜欢
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多