我正在使用加載項構建器和附加SDK編寫Firefox擴展。到目前爲止,我已經能夠解決任何限制而無需遷移到XUL。但是,我遇到了障礙。Firefox擴展中的併發和多線程
我的擴展有一個很長的運行過程,可能會阻塞,所以我需要將這個處理與主UI線程分開。我已閱讀here這個問題,但它不能完全回答我的問題。 Web Workers是不夠的,因爲長時間運行的過程需要訪問js-ctypes和本機代碼。所以,似乎ChromeWorker可能會伎倆。但是,我不知道如何從「加載項」構建器訪問它。此外,線程管理器只能通過C++代碼訪問。我無論怎樣才能:
- 訪問和實例鉻工人(或)
- 創建線程(或)
- 假併發(不知)
以避免阻塞UI線程。或者,我可以在自己的代碼中滾動我自己的代碼(我試圖避免)。
謝謝。我如何使用Addon構建器創建JavaScript模塊?是否有可能創建一個作爲擴展的一部分?或者,我是否需要創建一個公共庫來導出ChromeWorker?再次感謝! – plin 2012-03-01 06:22:52
@plin:看我的代碼示例...你不需要創建一個模塊,已經有很多模塊可用。你只需要它們來獲得'ChromeWorker'構造函數,之後你就可以使用它。 – 2012-03-01 07:05:22
我嘗試創建一個庫並導出ChromeWorker。我能夠訪問它,但雖然實例化新的ChromeWorker創建了一個worker,但我無法在我的主腳本和worker腳本之間發佈或接收任何消息。 – plin 2012-03-01 07:12:39