我在C++中为FireFox扩展创建了一个XPCOM对象。我使用工作线程来监听一个事件,当它发生时,我需要在主线程上做些事情。显然,我不能坐在主线程的JavaScript上等待,因为你需要能够使用浏览器(我的事件很少发生)。 我尝试在线程中执行此操作(xpcom发送javascript事件): window.setTimeout(myImportantWorkFunction,100);如何在JavaScript中的线程之间进行通信?
这可以工作(在主线程上,按照预期),但它会暂停;它不会像预期的那样在100ms后发生。你必须点击一下或调整窗口的大小,然后突然调用该函数。就像JavaScript突然醒了一样。我认为这是因为它发生在一个线程中。
有没有更好的方法让工作人员请求主线程执行某些操作?
我意识到自己实际上是在回答完一个完全不同的问题(因为删除了),然后我开始写一个新的答案,然后意识到我只是写了你所说的,但不同的是:D 转到我! – olliej 2009-02-17 01:55:40