我在C++中爲FireFox擴展創建了一個XPCOM對象。我使用工作線程來監聽一個事件,當它發生時,我需要在主線程上做些事情。顯然,我不能坐在主線程的JavaScript上等待,因爲你需要能夠使用瀏覽器(我的事件很少發生)。 我嘗試在線程中執行此操作(xpcom發送javascript事件): window.setTimeout(myImportantWorkFunction,100);如何在JavaScript中的線程之間進行通信?
這可以工作(在主線程上,按照預期),但它會暫停;它不會像預期的那樣在100ms後發生。你必須點擊一下或調整窗口的大小,然後突然調用該函數。就像JavaScript突然醒了一樣。我認爲這是因爲它發生在一個線程中。
有沒有更好的方法讓工作人員請求主線程執行某些操作?
我意識到自己實際上是在回答完一個完全不同的問題(因爲刪除了),然後我開始寫一個新的答案,然後意識到我只是寫了你所說的,但不同的是:D 轉到我! – olliej 2009-02-17 01:55:40