Зачем этой программе нужен MsgBox? - PullRequest
1 голос
/ 15 декабря 2009

Короче говоря: я пытаюсь написать приложение, которое будет выгружать историю IE в текстовый файл. Поскольку я ленивый, я отправился на поиски уже существующей библиотеки и нашел этот прекрасный проект для сборки: http://www.freevbcode.com/ShowCode.asp?ID=6702. Только я застрял ...

Я наконец-то получил программу для выгрузки истории, но она работает только , если я добавлю MsgBox() в строку 169 из Module1.vb . Я пытался поместить туда Thread.Sleep(), но это не работает. Там должно быть окно сообщения, или только сегодняшняя история будет включена в список.

Полагаю, поскольку речь идет о wininet.dll, это вещь параллелизма. Thread.Sleep() (для цикла For ... Next) останавливает прослушивание программы; ничто там не заставляет его выходить из цикла до назначения значений, но MsgBox () как раз подходит. Есть ли что-то кроме MsgBox (), которое будет иметь такой же эффект? Мне бы не хотелось нажимать кнопку ОК тридцать раз, чтобы программа работала.

Вот моя ветка / версия / производная работа: http://profnano.org/andy/misc/img/HistList.zip; это проект VS.NET2003.

1 Ответ

5 голосов
/ 15 декабря 2009

MsgBox () прокачивает цикл сообщений. Это может привести к расклеиванию всего кода. Окна получают возможность покрасить себя. Устранены взаимоблокировки COM из-за того, что основной поток застрял в цикле, это всегда проблема, когда задействован IE. Вызов DoEvents () является очень несовершенной альтернативой MsgBox ().

...