gpt4 book ai didi

javascript - 在处理大量数据时停止 Web Worker?

转载 作者:行者123 更新时间:2023-11-28 00:00:57 25 4
gpt4 key购买 nike

我想使用 Web Workers 处理 block 中的图像数据并对图像数据应用过滤器,因为直接在 UI 线程上工作似乎很慢。 (我的问题并不是特定于宏观计划中的图像数据处理)

当我提出解决方案时,主要问题是,如果我要将正在处理的图像分割成 block ,然后将该数据发送给 Web Workers,我仍然希望能够通过以下方式取消处理:向网络 worker 发送另一条消息。但我的假设是,如果我使用传统循环(而不是产生的递归函数)来处理数据,则在该过程完成之前我将无法接收更多消息(否定发送取消消息的用处)。

是这样的吗?我还没有尝试过,但我想知道是否值得我以某种方式在网络工作人员本身中进一步分割这些数据,以便它可以继续接收更多消息并处理它们。

如果拆分是最好的方法,那么您将如何实现本质上的屈服?我假设这将是某种 1 毫秒的超时,然后允许事件循环处理传入的消息,然后让我的处理函数从它停止的地方继续,但如果这不是执行此操作的方法,有人可以建议另一种方法吗?

最佳答案

您可以使用主网络工作线程来生成子工作线程,而不是“屈服”...因此,让您为图像处理而生成的主网络工作线程处理来自主 UI 线程的传入消息,并创建 block 它向自己的子工作人员发出的图像处理任务的数据。这样,您就可以根据来自主 UI 线程的消息轻松终止或管理任何子工作人员,并且您的主网络工作人员始终保持响应而不会阻塞,需要某种形式的“产量”,或者等待一段固定的超时时间,然后才能再次响应消息。

关于javascript - 在处理大量数据时停止 Web Worker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31812752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com