0

通过参考Another Question About ActiveX freezes IE,我也像作者一样写了一个Active,当activex做某事时,整个IE都被冻结了。不能选择其他选项卡,也不能关闭其中包含 activex 的选项卡。

我知道我可以编写一些线程代码来完成这项工作。但是,我的问题是,Flash 或 Silverlight 等其他 activex,它们如何解决?我不相信他们所有的工作都是异步的,也许他们把所有的工作都保持得很短,所以我们从来没有注意到延迟?

欢迎任何建议。谢谢。

4

1 回答 1

0

您不能在 IE 的 UI 线程上执行长时间运行的操作,否则选项卡将挂起。UI 线程是您的控件实例化的线程;它是调用的那个IObjectWithSite::SetSite()。你在做什么工作?长时间运行的操作包括文件处理、HTTP 请求以及任何涉及获取任何类型的锁的操作。

您对 Flash 是如何工作的猜想也是错误的;Flash 确实使用了多个线程。

于 2012-06-27T03:45:13.900 回答