Javascript 可以从不同的线程调用JS函数吗?

Javascript 可以从不同的线程调用JS函数吗?,javascript,c++,multithreading,internet-explorer,com,Javascript,C++,Multithreading,Internet Explorer,Com,我正在尝试使用jswindow.external使两个不同的浏览器通过本机代码宿主(C++)相互通信 语法类似于: 在destination.js上: window.external.register("dest", eventCallbak); function eventCallback(senderID, data) { alert("message recieved from " + senderID + " with data of " + data); } 在s

我正在尝试使用jswindow.external使两个不同的浏览器通过本机代码宿主(C++)相互通信

语法类似于:

在destination.js上:

window.external.register("dest", eventCallbak);  
function eventCallback(senderID, data) {  
    alert("message recieved from " + senderID + " with data of " + data);  
}
在source.js上:

window.external.sendMsg("source", "dest", "Hello dest! this is source...");
通过保存
eventCallback
参数,将其另存为
IDispatch
并在被请求时调用它,我成功地实现了同步。没问题

当尝试异步执行此操作时,问题就开始了,这意味着-将
eventCallback
保存为一个线程上的
IDispatch
,然后在另一个线程中调用它,会导致调用方法失败,出现
E\u UNEXPECTED
HRESULT

有什么想法吗


谢谢,

两个浏览器实例使用不同的JS VM实例。 通常不能从一个VM/堆中获取一个对象并将其传递给另一个VM/堆


因此,您需要在这里发明某种封送。

是的,最终我使用CoMarshalInterThreadInterfaceInStream来解决它。谢谢