Поэтому я пытаюсь сравнить два HTMLDocuments, чтобы увидеть, есть ли какие-либо изменения на веб-сайте с использованием DispatchTimer ().
Вот мой код:
HTMLDocument lastDoc;
public void startTimer()
{
lastDoc = (HTMLDocument)Form.RosterBrowser.Document;
DispatcherTimer dispatcherTimer = new DispatcherTimer();
dispatcherTimer.Tick += dispatcherTimer_Tick;
dispatcherTimer.Interval = new TimeSpan(0, 0, 2);
dispatcherTimer.Start();
}
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
var thisDoc = (HTMLDocument)Form.RosterBrowser.Document;
LogTextBlockControl.Text += "DOCUMENT THIS: " + thisDoc.getElementById("groupList").innerText.Length.ToString();
LogTextBlockControl.Text += "DOCUMENT LAST: " + lastDoc.getElementById("groupList").innerText.Length.ToString();
}
Как вы можетесм .: Когда время начинается впервые, я получаю HTMLDocument и сохраняю его в lastDoc.Затем каждые 2 секунды я получаю другую переменную HTMLDocument и сохраняю ее в thisDoc.Теперь я печатаю длину определенного элемента каждые 2 секунды, чтобы посмотреть, не изменилось ли что-либо внутри этого элемента.
Когда программа запускается впервые, они оба печатают одно и то же число, что является нормальным, поскольку они оба получили одинаковоеHTMLDocument.Но допустим, я что-то изменил в элементе groupList.Можно подумать, что длина переменной thisDoc изменится.Ну, это так, но так же как и длина lastDoc.Вот где возникает проблема.
При каждом изменении элемента thisDoc обновляется и печатает длину измененного элемента, но также обновляется lastDoc и начинает печатать ту же длину.Это не то, что я хочу, так как теперь я не могу сравнить два, чтобы запустить функцию.Я вызываю startTimer () только один раз во всей программе, и я никогда не меняю lastDoc, похоже, он меняется сам по себе.Я уже несколько дней сижу над этой проблемой, надеюсь, кто-нибудь мне поможет.