Проверка изменен ли код страницы - C#
Формулировка задачи:
Сделал программу для собственных нужд, понимаю, что она очень и очень криво написана, но она работает, правда не долго. Так как там бесконечный цикл для проверки каждые 10 сек, то программа зависает. Если страница изменяется за недолгое время (через минуты 2-3) то цикл завершается, программа выводит месседжбокс и звуковой сигнал, но вот сейчас я поставил ее работать и через 30-40 минут работы она конкретно зависла и причем пропустила изменение страницы. Собственно, вопрос в том, как можно сделать без цикла или как этот цикл оптимизировать, чтобы программа наглухо не зависала? Код под спойлером
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net; using System.IO; using System.Media; namespace Changes_checker { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { SoundPlayer sp = new SoundPlayer(@"click.wav"); try { while (true) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(textBox2.Text); Stream stream = request.GetResponse().GetResponseStream(); string html = null; StreamReader reader = new StreamReader(stream); html = reader.ReadToEnd(); string need = null; need = System.IO.File.ReadAllText("test.txt"); if (need.Equals(html)) { System.Threading.Thread.Sleep(10000); } else { sp.Play(); MessageBox.Show("Страница была изменена!"); return; } } } catch (Exception exc) { MessageBox.Show(exc.Message); } } private void button2_Click(object sender, EventArgs e) { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(textBox2.Text); Stream stream = request.GetResponse().GetResponseStream(); string html = null; StreamReader reader = new StreamReader(stream); html = reader.ReadToEnd(); System.IO.File.WriteAllText("test.txt", html); MessageBox.Show("Страница была сохранена!"); } catch (Exception exc) { MessageBox.Show(exc.Message); } } } }
Решение задачи: «Проверка изменен ли код страницы»
textual
Листинг программы
private void check_text() { using (var sr = new StreamReader("123.html")) //два одинаковых файла.. { string text = sr.ReadToEnd(); string text2; using (var sr2 = new StreamReader("321.html")) //если дописать хотябы один символ.. { text2 = sr2.ReadToEnd(); } if (text.Contains(text2)) { MessageBox.Show("Всё сходится!"); } else { MessageBox.Show("Не сходится!"); //то вот что будет, попробуйте } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д