private void Update() { Sort(); if (_pipelineTimer.Enabled == false) { _pipelineTimer.Start(); } if (_spooler.SpoolerTimer.Enabled == false) { _spooler.SpoolerTimer.Start(); } _networkConnection.PipelineElementsChanged(Count); _spooler.DataDelivery(); }
public new void Sort() { // This part of the code solves the problem of the "Byzantine fault tolerance" lock (this) { Sort((x, y) => { int compare = x.Element.Timestamp.CompareTo(y.Element.Timestamp); if (compare != 0) { return(compare); } return(x.Element.XmlObject.CompareTo(y.Element.XmlObject)); }); } _networkConnection.PipelineElementsChanged(Count); if (_spooler.SpoolerTimer.Enabled == false) { _spooler.SpoolerTimer.Start(); } _spooler.DataDelivery(); PlanNextSchedulerRun(); }