如何在卡布奇诺咖啡中多线程

时间:2015-03-22 09:01:30

标签: multithreading cappuccino objective-j

我有一个数据密集型Cappuccino应用程序可能需要30秒才能运行“作业”一个示例可能是组合来自多个数组的值以生成另一个数组以供在TableView中使用。我想要包含一个动画进度条,这将需要超过一秒或2,但我似乎阻止主(主)线程所以没有活动是可见的。即控制台消息和显示更新都等到作业完成。是否可以在后台线程上运行这样的作业,以便主进程(包括进度条)可以在进程中更新和显示?

1 个答案:

答案 0 :(得分:3)

Javascript没有线程或共享内存。您可以使用webworker API并行执行代码。 Web worker的一般问题是在worker中运行的代码必须位于单独的文件中。

幸运的是,有人已经为它创建了一个很好的包装器,它将从一串代码中创建一个数据blob并将其用作worker的文件。然后,您希望将数据传递给该新工作者,并让它运行。

您可以偶尔从您的工作人员调用postMessage(),您可以使用它来更新进度指示器。

https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/basic_usage