【发布时间】:2011-08-15 02:50:41
【问题描述】:
我正在尝试使用 JS window.external 使 2 个不同的浏览器通过本机代码主机 (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,然后稍后在另一个线程中调用它,导致调用方法失败,@987654328 的 HRESULT @。
有什么想法吗?
谢谢,
【问题讨论】:
标签: javascript c++ multithreading internet-explorer com