, если вы делаете это, чтобы проверить, действительно ли документ загружен, есть лучший способ проверить это конкретное событие (например, объекты pDisp).Посмотрите на некоторые из моих ответов, связанных с управлением веб-браузером.
, поэтому здесь вы хотите запустить счетчик различий между NavComplete и DocComplete, однако, если вы сделаете это нормально, он не будет работать, так как NavComplete вызываетсяболее одного раза на многих кадрах, поэтому вам необходимо проверить, является ли вызываемый NavComplete уникальным.В vb это просто сравнение одного объекта с другим с помощью оператора Is, в C # я понимаю, что Is недоступно, поэтому вы просто делаете обычное сравнение объектов.
Итак, вы ведете список всех объектов pDisp, которыеNavComplete опубликовал, и перед добавлением каждого вы проверяете всю коллекцию, чтобы убедиться, что добавляемый pDisp ранее не был добавлен (т. Е. Уникален), например: If pDisp Is pDispCollection(i) Then
и «i» - ваш счетчик приращений в вашемдля каждого цикла.
Теперь сообщения pDisp, которые публикуются в DocComplete, ВСЕГДА уникальны (поэтому вам не нужно беспокоиться о том, что он вызывается более одного раза для каждого нового / уникального pDisp), поэтому каждый раз, когда происходит pDisp, выпросто найдите, какой это из коллекции, и удалите его.
Как только вы достигнете 0, вы узнаете, что он действительно завершен:).
Есть и другие вещи, которые вам нужно проверитьно это очень важный вопрос, который значительно увеличит вашу точность (гораздо больше, чем просто проверка на .busy и .readystate).
Дайте мне знать, как это происходитЕсли вам нужна дополнительная помощь.