BHO - 从工作线程附加事件处理程序
-
22-08-2019 - |
题
在DISPID_DOCUMENTCOMPLETE如果我在DOM从一个工作线程附加一个onclick处理特定元素,则该事件没有得到同时单击它发射,可能是什么原因呢?这是工作的罚款,如果我从主线程连接的事件处理程序,但我希望异步做的事情。
我使用CoMarshalInterThreadInterfaceInStream和CoGetInterfaceAndReleaseStream对线程之间传递IID_IWebBrowser2指针。
解决方案
什么是你的工作线程做的,什么是事件处理程序的线程模型?如果线程模型是STA,然后工人线程需要定期地抽取消息,或者如果它等待同步,那么它应该使用CoWaitFor...
职能,确保COM消息将被处理。或者,您可以聚集自由线程编组,但要确保你的对象是线程安全的,并且不调用出来,如果你这样做,可能会给你一个线程模型误差任何其他COM接口。
也许,网页浏览器控制不与MTA兼容,所以你将不能够把它放在那。在任何情况下,MTA是不与用户界面线程兼容,使得规则进行。
不隶属于 StackOverflow