public void checkPagesDifference() { var myTimer = new System.Timers.Timer(); // Tell the timer what to do when it elapses myTimer.Elapsed += (object source, ElapsedEventArgs e) => { using (WebClient client = new WebClient()) { myTimer.Stop(); client.Headers.Add("User-Agent:Edge / 13.10586"); string htmlCode = client.DownloadString(urlModello); File.Delete("D:\\sitoafter.html"); if (!File.Exists("D:\\sitobefore.html")) { File.AppendAllText("D:\\sitobefore.html", ""); } File.AppendAllText("D:\\sitoafter.html", htmlCode); if (Form1.FilesAreEqual(new FileInfo("D:\\sitobefore.html"), new FileInfo("D:\\sitoafter.html"))) { // NO UPDATE // File.Delete("D:\\sitoafter.html"); Console.WriteLine("nessun aggiornamento, riprovo tra 10 secondi"); myTimer.Start(); } else { //UPDATE ( FORSE ) File.Delete("D:\\sitoafter.html"); File.Delete("D:\\sitobefore.html"); File.AppendAllText("D:\\sitobefore.html", htmlCode); wb1.Navigate(urlModello); } } }; // Set it to go off every five seconds myTimer.Interval = 10000; // And start it myTimer.Start(); }