Проверка изменен ли код страницы - 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("Не сходится!"); //то вот что будет, попробуйте
}
}
}