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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.083 из 5