private void MonitorPageThread(string key, int startDelayMs = 0) { if (startDelayMs > 0) { Thread.Sleep(startDelayMs); } while (!Terminate && Monitoring.Get(key).Contains(Name)) { WikiPage newPage = About(); if (!newPage.RevisionDate.Equals(RevisionDate)) { // Event handler to alert the calling app that the list has changed. --Kris WikiPageUpdateEventArgs args = new WikiPageUpdateEventArgs { NewPage = newPage, OldPage = this }; OnPagesUpdated(args); } Thread.Sleep(Monitoring.Count() * MonitoringWaitDelayMS); } }
private void MonitorPageThread(string key, int startDelayMs = 0, int?monitoringDelayMs = null) { if (startDelayMs > 0) { Thread.Sleep(startDelayMs); } monitoringDelayMs = (monitoringDelayMs.HasValue ? monitoringDelayMs : Monitoring.Count() * MonitoringWaitDelayMS); while (!Terminate && Monitoring.Get(key).Contains(Name)) { if (MonitoringExpiration.HasValue && DateTime.Now > MonitoringExpiration.Value) { MonitorModel.RemoveMonitoringKey(key, Name, ref Monitoring); Threads.Remove(key); break; } while (!IsScheduled()) { if (Terminate) { break; } Thread.Sleep(15000); } if (Terminate) { break; } WikiPage newPage; try { newPage = About(); if (!newPage.RevisionDate.Equals(RevisionDate)) { // Event handler to alert the calling app that the list has changed. --Kris WikiPageUpdateEventArgs args = new WikiPageUpdateEventArgs { NewPage = newPage, OldPage = this }; OnPagesUpdated(args); } } catch (Exception) when(!BreakOnFailure) { } Wait(monitoringDelayMs.Value); } }
private void C_PageUpdated(object sender, WikiPageUpdateEventArgs e) { PageUpdated = true; }
internal virtual void OnPagesUpdated(WikiPageUpdateEventArgs e) { PageUpdated?.Invoke(this, e); }