我的 windows MFC 应用程序有一个嵌入的 WebBrowser 控件,它承载一个 Web 应用程序,当用户单击通过 javascript window.open() 调用显示弹出窗口的链接时,它会导致 iexplorer.exe 启动以显示弹出窗口.
当此弹出窗口关闭时,iexplore.exe 将关闭,但是关闭需要很长时间,如果用户单击链接再次启动弹出窗口,则会显示 javascript 错误:
“已安排系统关闭”,-我认为这是与关闭有关的通用 COM 错误消息。
在我的测试中,我观察到 Internet Explorer 11 进程 iexplore.exe 最多需要 15 秒才能退出。相比之下,Internet Explorer 8 几乎立即退出。
这可以通过启动 Internet Explorer 11 并打开 taskmgr.exe 以查看启动的两个 iexplore.exe 进程来轻松验证。一个是 64 位主机进程,另一个是托管选项卡内容的 32 位进程。当 Internet Explorer 窗口关闭时,32 位进程会立即退出,但 64 位主机进程会停留几秒钟。
仅当 iexplore.exe 正在关闭时才会出现此错误。如果出现以下情况,则不会发生:
- 用户等待 iexplore.exe 终止
- 使用任务管理器杀死 iexplorer.exe
- 或者确保已经打开了一个 Internet Explorer 窗口,以便在弹出窗口关闭时 iexplore.exe 不会终止,因为它仍在显示一个窗口。
有没有人有任何想法?