为什么这个程序需要MsgBox?

And*_*ton 1 vb.net winapi msgbox

长话短说:我正在尝试编写一个将IE历史记录转储到文本文件的应用程序.因为我很懒,所以我去寻找一个预先存在的库,并发现这个美丽的项目来构建:http://www.freevbcode.com/ShowCode.asp?ID = 6702 .只是,我被困了......

我终于得到了程序来转储历史记录,但只有在我放置Module1.vb的MsgBox()第169行时它才有效.我试过放一个,但那不起作用.那里必须有一个消息框,或者只列出今天的历史记录.Thread.Sleep()

我的猜测,因为这是在谈论wininet.dll,这是一个并发的事情. Thread.Sleep()(对于For ... Next循环)停止程序监听; 没有什么能让它在分配值之前退出循环,但是MsgBox()恰到好处.除了MsgBox()之外还有什么东西会产生相同的效果吗?我不想三十次打OK以使程序正常工作.

这是我的分支/版本/衍生作品:http://profnano.org/andy/misc/img/HistList.zip ; 这是一个VS.NET2003项目.

Han*_*ant 5

MsgBox()泵出一个消息循环.这可以让所有类型的代码解开.Windows有机会自己画画.由于主线程陷入循环而导致的COM死锁被解决,当涉及IE时总是一个问题.调用DoEvents()是MsgBox()的非常不完美的替代方法.