我正在使用 SHDocVw 启动新的 InternetExplorer 实例并在用户导航到的每个页面中注入一些代码:
var internetExplorer = new InternetExplorer
{
Visible = true
};
RegisterEvents(internetExplorer);
internetExplorer.Navigate2(url);
注册事件:
private static void RegisterEvents(InternetExplorer internetExplorer)
{
internetExplorer.NavigateComplete2 += new DWebBrowserEvents2_NavigateComplete2EventHandler(InternetExplorer_NavigateComplete2);
}
问题是它不是每次都被解雇。有时有效,有时无效。此代码以异步方法运行。现在是最好的部分。我试过这样的事情:
private static void RegisterEvents(InternetExplorer internetExplorer)
{
Thread t = new Thread(() =>
{
internetExplorer.DocumentComplete += InternetExplorer_DocumentComplete;
while (true)
{
}
});
t.Start();
Debug.WriteLine("RegisterEvents");
}
不知何故,它每次都有效!但我不喜欢这种无限循环。我的第一种方法可能有什么问题?为什么第二个有效,我怎样才能让它变得更好?